跳到主要内容

功能作用

数据转发服务,提供转发规则、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