北向通道能够将边缘节点采集的设备属性数据流式传输到多种第三方数据接收方(如 RESTful API 终端、Kafka 消息流平台、MQTT Broker 服务器和InfluxDB 数据库),以便进行数据处理和消费。本文介绍了在边缘节点上创建北向通道的方法。
边缘节点支持部署北向通道。一条北向通道可以配置多个数据源(source)和多个数据接收方(sink)。
北向通道运行时,会将来自数据源的“数据点”流式传输到数据接收方。若数据点进入北向通道,而未传输到接收方,则表示传输异常。
已将节点绑定到边缘智能项目。具体内容,请参见绑定节点。
要传输数据到第三方接收方,您必须提前搭建好接收方(sink)环境,并获取接收方的访问地址等信息。创建北向通道时,您必须提供接收方的相关信息。针对不同接收方,需要提供的信息如下表所示。
sink 类型 | 说明 | 环境搭建 |
---|---|---|
rest | 将边缘侧设备的属性数据发送到一个 RESTful API,通常用于与 HTTP/HTTPS 协议兼容的服务进行交互。 | 您已经搭建 Web 服务,并获取了 Web 服务的 Url。 |
kafka | 将边缘侧设备的属性数据上报到 Kafka 消息系统进行处理。 | 您已经搭建了 Kafka 系统并获取了 Kafka 系统的以下参数值:Brokers、topic。 |
influx2 | 将边缘侧设备的属性数据上报到 InfluxDB 2.x 数据库进行实时分析。 | 您已经搭建了 InfluxDB 数据库并获取了 InfluxDB 数据库的以下参数值:Url、Organization、Bucket、Measurement、Token。 |
influx | 将边缘侧设备的属性数据上报到 InfluxDB 1.x 数据库进行实时分析。 | 您已经搭建了 InfluxDB 数据库并获取了 InfluxDB 数据库的以下参数值:Url、Database、Measurement。 |
mqtt | 将边缘侧设备的属性数据上报到 MQTT 代理服务器的主题进行处理。 | 您已经搭建了 MQTT 服务器,并获取了 MQTT 服务器的以下参数值: |
升级一体机到 2.7.0 及以上版本。具体内容,请参见升级节点软件。
登录边缘智能控制台。
在左侧导航栏顶部的 我的项目 区域,选择您的项目。
在左侧导航栏,选择 设备管理 > 北向通道。
在 北向通道 页面,单击 创建北向通道。
在 创建北向通道 页面,根据以下配置说明完成相关配置。
区域 | 配置项 | 说明 |
---|---|---|
基本信息 | 名称 | 为北向通道设置一个名称。输入要求如下:
|
描述 | 为北向通道添加描述信息。长度不超过 128 个字符。 | |
数据源配置 | 节点 | 选择一个或多个节点。 |
设备模板 | 通过设备模板、驱动模板和设备实例来确定北向通道的数据源,此三者的交集决定了要传输的设备数据。
请确保三者有交集,否则数据源配置无效。 | |
sink节点配置 | 名称 | 为 sink 节点设置一个名称。 |
sink类型 | 根据接收数据的目标系统,选择对应的 sink 节点类型。支持选择:
| |
参数配置 | 系统根据您选择的 sink 类型,会自动生成对应的参数配置模板。您可以根据需要配置所需参数。相关内容,请参见sink 节点参数配置说明。 | |
连通性测试 | 单击 连通性测试,检查边缘节点和接收方之间的网络是否连通。 | |
数据格式 | 您可以根据接收方对数据格式的特定要求,定义数据转发格式,边缘智能平台会将采集的设备原始数据按照定义的格式重新组织并转发。如果未定义数据格式,平台将根据接收方协议自动使用默认数据格式进行转发。 说明 目前仅允许为 rest、kafka 和 mqtt 类型的 sink 节点配置数据格式。 在配置数据格式时,可以选择一个设备模板并通过数据格式预览来确认数据格式是否符合预期。
|
如果您需要将采集到的数据发送到不同的系统或服务进行进一步的处理,您可以单击 添加sink节点,继续添加其他 sink 节点。
完成以上配置后,单击右下角的 保存。
系统将在节点上部署北向通道。您可以在 北向通道 页面查看部署 状态,待北向通道的状态由 创建中 变为 运行中 后,表示该北向通道已部署成功。
根据选择的 sink 类型,您需要配置相关的参数。本节介绍不同 sink 类型的参数配置说明、示例以及部署成功北向通道后,您如何来验证通道已正常工作。
## RESTful API 终端地址,例如 https://www.example.com/api/dummy url = "http://xx.xx.xx.xx:8000"
如果您的 Web 服务接收到来自边缘智能节点的数据,表示通道在正常工作。
配置项 | 说明 |
---|---|
brokers | Kafka 服务的外部监听地址。格式为 |
topic | 接收上报消息的 Kafka Topic。更多信息,请参见 Apache Kafka 官网文档:Topic-Level Configs。 |
saslAuthType | Kafka 客户端用于身份验证的 SASL 机制类型。可以设置为:
默认为 none。 |
## Kafka brokers 的 URL 列表 brokers = "192.168.1.100:9092,192.168.1.101:9092,192.168.1.102:9092" ## 订阅主题 topic = "my_kafka_topic" ## Kafka 的 Sasl 认证类型,可设置为 none, plain, scram-256, scram-512。默认为 none。 saslAuthType = "none"
通道部署成功后,您可以登录 Kafka 服务查看数据。当您在 Kafka 服务中查看到节点上报的设备运行数据,表示通道在正常工作。
配置项 | 说明 |
---|---|
addr | InfluxDB 实例的 URL 。 |
org | InfluxDB 中的组织名称,用于区分不同的用户和数据集。 |
bucket | InfluxDB 中存储时间序列数据的容器,相当于其他数据库中的“数据库”。 |
measurement | InfluxDB 中数据的度量名称,用于组织和查询数据,相当于关系数据库中的“表名”。 |
token | 用于 InfluxDB 身份验证的 API 令牌,提供对数据库的访问权限。 |
precision | 时间戳的精度设置,可以设置为 ns(纳秒)、us(微秒)、ms(毫秒)或 s(秒)。 |
说明
您可以使用 Telegraf 插件导出 InfluxDB 的配置信息。更多信息,请参见 InfluxDB 官方文档:Manually configure Telegraf。
# InfluxDB v2 服务器地址,假设使用默认端口 8086 addr = "http://localhost:8086" # InfluxDB 组织名称 org = "my-organization" # InfluxDB bucket 名称 bucket = "my-bucket-name" # 测量名称,表示数据的类型或分类 measurement = "sensor-data" # InfluxDB API 令牌 token = "my-api-token" # 时间戳的精度,默认是毫秒 precision = "ms"
通道部署成功后,您可以登录 InfluxDB 服务查看数据。当您在 InfluxDB 服务中查看到节点上报的设备运行数据,表示通道在正常工作。
配置项 | 说明 |
---|---|
server | MQTT 服务器的地址,格式通常为 |
topic | 客户端发布消息的主题名称。消息将被发送到这个主题,以便订阅该主题的其他客户端可以接收消息。 |
# MQTT 服务器地址 server = "tcp://mqtt.example.com:1883" # MQTT 消息主题 topic = "home/analysis/result"
通道部署成功后,您可以使用配置的连接信息连接到 MQTT 服务器,然后订阅配置的主题,以便开始接收消息。当您在 MQTT 服务中接收到节点上报的设备运行数据,表示通道在正常工作。
配置项 | 说明 |
---|---|
addr | 您的 InfluxDB 实例的 URL,客户端将使用此地址连接到数据库。 |
database | 您要写入数据的 InfluxDB 数据库的名称。 |
measurement | InfluxDB 中数据的度量名称,用于组织和查询数据。 |
precision | 时间戳的精度设置,可以设置为 ns(纳秒)、us(微秒)、ms(毫秒)或 s(秒)。 |
# InfluxDB v1.x 服务器地址 addr = "http://localhost:8086" # InfluxDB 数据库名 database = "my_database" # 数据的度量名称 measurement = "sensor_data" # 时间戳的精度,默认为毫秒。 precision = "ms"
通道部署成功后,您可以登录 InfluxDB 服务查看数据。当您在 InfluxDB 服务中查看到节点上报的设备运行数据,表示通道在正常工作。