消息路由即通过路由规则动态规划消息的传输路径,使消息按照过滤条件,从消息源路由到目标节点。
前提条件
消息路由需在边缘实例中设置。您需在设置消息路由之前,先创建边缘实例,并为该实例分配网关、驱动、设备和边缘应用。操作步骤
- 登录边缘计算控制台。
- 在左侧导航栏中,单击边缘实例。
- 找到您要设置消息路由的实例,单击操作栏中的查看。
- 在实例详情页面,选择消息路由页签,单击分配路由。
- 在弹出的分配消息路由对话框中,设置分配消息路由的配置项。配置完成后,单击确定。
参数名称 参数说明 路由名称 设置一个消息路由名称。长度限制为4~32个字符,汉字和中文符号算2个字符。 消息来源 选择消息的发送者。
- 设备:表示已分配至该实例的设备发送消息。
此时需要配置消息来源的具体产品或设备,请参见本表格中的产品和设备参数说明。
- 边缘应用:表示消息由边缘应用发出,需选择已分配给该边缘实例的应用名称。说明 仅函数计算类型的边缘应用,支持使用消息路由。
- IoT Hub:表示消息由云端发出。 此时,依赖网关产品下的如下自定义Topic类,请确认您的网关产品下是否已存在该Topic类。若没有,请添加该Topic类(操作方法请见使用自定义Topic通信)。
- Topic类:
/YourProductKey/${deviceName}/user/#
,其中YourProductKey为变量,表示网关产品的ProductKey;${deviceName}通配DeviceName。 - 设备操作权限:订阅。
- Topic类:
- 流数据分析:表示消息由流数据分析发出,需选择已分配给该实例的流数据分析任务名称。
产品 当消息来源为设备时,需要选择消息来源的产品。 - 全部产品:该边缘实例下的全部设备都是消息来源。
- 选择多个产品:这些产品下已分配到边缘实例的所有设备都是消息来源。 说明 一个消息路由,最多可同时选择100个产品。
- 选择某一个产品:使用该产品下已分配到边缘实例的设备作为消息来源。此时您需要选择具体的设备,请参见本表格中的设备参数说明。
设备 当消息来源为设备,且产品参数仅选择了一个产品时,需要选择该产品下具体的设备,作为消息来源。 - 全部设备:该产品下分配至边缘实例的全部设备都是消息来源。
- 选择多个设备:表示这些设备将作为消息来源。 说明 一个消息路由,最多可同时选择100个设备。
- 选择某一个设备:表示指定该设备作为消息来源。
消息主题过滤 设置消息过滤条件。只有满足此条件的消息才能到达消息目标。设置方法如下:
- 当消息来源为设备时:可选择为设备的属性、事件或全部。
- 当消息来源为边缘应用或流数据分析时:需自定义(定义方法请参见什么是Topic )。可使用通配符
+
和#
。 - 当消息来源为IoT Hub时:从下拉框中选择需要过滤的Topic类。
消息目标 消息的接收者。
- IoT Hub:表示消息需要上传到云端。则需要设置服务级别,请参见本表格中的服务级别参数说明。
- 边缘应用:需要指定已分配到边缘实例的应用名称。说明 仅函数计算类型的边缘应用,支持使用消息路由。
- 流数据分析:仅消息来源为设备时可选,需要指定流数据分析的任务名称。
服务级别 当消息目标为IoT Hub时,需要设置服务级别来确定您的设备数据是否支持断网续传。
- 0:表示需要上传到云端的消息在网络异常状态下会丢失。
- 1:表示在网络异常时,需要上传到云端的消息将被保存在本地存储区,在网络恢复后Link IoT Edge将存储区中的历史数据续传到云端。
当消息路由路径是边缘应用至IoT Hub,并选择服务级别为1时,需在网关产品下,自定义如下Topic类(操作方法请见使用自定义Topic通信),并重启网关。
- Topic类:
/YourProductKey/YourDeviceName/user/restore
,其中,将YourProductKey和YourDeviceName替换为网关的设备证书信息。 - 设备操作权限:订阅。
断网续传的历史数据会通过此Topic上传至云端。您可以通过云端规则引擎,分类处理网络恢复后续传的历史数据。历史数据格式如下:{ "topic":"yyyyy", "payload":.... #string型或object型 }
其中
topic
为原上云数据的Topic,payload
为原上云的数据内容。 - Topic类:
说明 服务级别选择1时,在网络异常状态下CPU和磁盘IO占用量会增加,当数据量很大时可能会耗尽系统磁盘和CPU资源。不同的系统性能其承受的负载上限有所不同,请您根据自身需求选择是否支持断网续传。说明- 有相同消息来源和消息目标、不同消息主题过滤的路由,其消息最多转发一次。即路由执行后,如果有一条路由匹配成功,则剩余的路由不再匹配执行。
- 有不同消息来源或消息目标的所有路由,会依次匹配执行。
此时可能会有逻辑上的重复执行转发消息的情况。 例如,一条路由消息来源是全部设备,消息目标是IoT Hub,另一条路由消息来源是设备A,消息目标也是IoT Hub;当设备A发送消息时,上述两条路由都会匹配执行,即设备A的数据向IoT Hub发送两次。
- 设备:表示已分配至该实例的设备发送消息。
文档内容是否对您有帮助?