功能作用
数据转发服务,提供转发规则、MQTT转发、HTTP转发、数据库转存等功能,如果你想将三三设备数据交由自己的业务平台、三方业务平台处理,又或者你想保留原始数据使用,转发服务就派上用场了。
使用步骤
先配置好 “转发服务”,“转发服务” 是连接业务平台的通道,分为 MQTT、HTTP、数据库DB 三种; 然后配置 “转发规则”, 转发规则指定哪些数据需要转发到业务平台
转发服务
MQTT 转发
使用 MQTT 消息中间件作为数据接收,适合后端数据消费的系统架构,业务解耦、消费时机可控,且服务长连接方式更为高效且方便。
进入 数据转发
-> 转发服务
-> MQTT 服务
,添加 “转发服务”
服务名称:自定义你的转发服务名称,方便你见名知意
服务地址:填写转发目的地址 ip/域名,保证地址公网或局域网可访问
服务端口:填写目标服务器mqtt的服务端口,如 1883
用户名/密码:MQTT 服务的实际用户密码权限信息
HTTP 转发
使用 HTTP 接口服务的方式接收数据,可能更贴近你的业务,你可以及时地对数据进行自定义处理、筛选,或完成业务下沉。
进入 数据转发
-> 转发服务
-> HTTP 服务
,添加 “转发服务”
服务名称:自定义你的转发服务名称,方便你见名知意
服务地址:填写转发目的地址ip/域名,保证地址公网或局域网可访问
服务端口:填写 HTTP 的服务端口,如 8080,注意接收接口请使用 POST 方式,接收类型 Conten-Type:application/json
URL:接口url后缀,按实际接收接口填写
DB 转发
使用数据库转发,可以达到对数据进行备份的效果,同时也可以直接纳入到你的数据库系统设计实现中。
进入 数据转发
-> 转发服务
-> DB 服务
,添加 “转发服务”
服务名称:自定义你的转发服务名称,方便你见名知意
服务地址:填写转发目的地址 ip/域名,保证地址公网或局域网可访问
服务端口:填写目标数据库的服务端口,如 5432
用户名/密码:数据库连接用户信息,(我们服务内部会对密码加密)
数据库驱动:目前支持 mysql/postgres/sqlserver
数据库名:填写转存数据库名称
数据库表名:填写转存目标表的名称,缺省时会创建 t_sansan_forward 表名进行存储
服务列表
连接状态:表示 MQTT、数据库此时的连接状态
末次连接:表示的是 HTTP 最后一次请求连接的结果
末次转发时间:记录了最后一次数据转发时间
转发数量:显示配置生效后成功转发的数量
此外,提交服务信息时,后台会尝试连接一次,若提示失败请检查信息是否正确。服务连接状态也可以通过 “测试” 功能判断。勾选服务进行删除,后台会清理记录的服务信息及其相关缓存。
转发规则
规则列表
转发规则列表查询了规则基本信息,规则与服务多对一,按产品/设备指定数据来源
“添加/编辑” 操作将出现服务规则信息窗口
规则名称:自定义你的转发规则名称,方便你见名知意
服务类型:选择对应的转发服务类型
转发服务:选择对应类型的转发服务与规则关联,业务数据将按照服务通道进行传输
服务对象:产品或设备
转发产品/设备:按产品时,规则对该产品所有设备生效,按设备时,对指定设备生效
转发变量:支持灵活自定义转发数据的字段转换
此外,勾选服务规则进行删除,后台会清理记录的规则信息及其相关配置缓存,但不会删除对应转发服务。
字段转换说明
三三转发消息为 json,内容示例:
{
"data": {
"temprature": 51.8
},
"msgType": 1,
"sn": "dev0001",
"updateTime": "2023-03-30 11:24:51"
}
字段转换示例:
{
"sn": "sn",
"msgType": "msg_type",
"humidity": "hum",
"temprature": "temp",
"updateTime": "update_time",
"runtime.cpu": "cpu",
"runtime.mem": "mem",
"temprature;humidity": "data"
}
其中,sn、msgType、updateTime 为固有字段,分别表示设备sn、消息类型 (传感量/配置量)、上报时间。 如果你想多个字段内容转发到某个字段,可以分号拼接,如 "temprature;humidity",将多个字段的值组成 json 转发到目标字段、或 json 字符串到目标表列
MQTT
- 1、转发主题为 “/sansan/data/forward”
- 2、如果不设置 “转发变量” 映射,按默认消息内容格式转发
- 3、如果设置 “转发变量” 映射,按映射转发,映射格式为 {key: value},key 为终端变量标识 (层级对象的拉平使用 “.” 作为分隔符,如 rumtime.cpu ),value为目标字段 cpu
HTTP
- 1、接口转发方式为 POST, 类型为 "Content-Type":"application/json"
- 2、如果不设置 “转发变量” 映射,body内容按默认消息格式
- 3、如果设置 “转发变量” 映射,按映射转发,映射格式为 {key: value},key 为终端变量标识 (层级对象的拉平使用“.” 作为分隔符,如 rumtime.cpu ), value 为目标字段 cpu
DB
- 1、转存到转发服务指定表,未指定表名时将自动创建表 “t_sansan_forward”
- 2、必需设置 “转发变量” 映射,用作转存的表字段。映射格式为 {key: value},key 为终端变量标识(层级对象的拉平使用“.” 作为分隔符,如 rumtime.cpu ), value 为目标字段 cpu, 对应表的列名 cpu