消息路由即通过路由规则动态规划消息的传输路径,使消息按照过滤条件,从消息源路由到目标节点。

前提条件

消息路由需在边缘实例中设置。您需在设置消息路由之前,先创建边缘实例,并为该实例分配网关、驱动、设备和边缘应用。

操作步骤

  1. 登录边缘计算控制台
  2. 在左侧导航栏中,单击边缘实例
  3. 找到您要设置消息路由的实例,单击操作栏中的查看
  4. 实例详情页面,选择消息路由页签,单击分配路由设置消息路由
  5. 在弹出的分配消息路由对话框中,设置分配消息路由的配置项。配置完成后,单击确定
    参数名称 参数说明
    路由名称 设置一个消息路由名称。长度限制为4~32个字符,汉字和中文符号算2个字符。
    消息来源

    选择消息的发送者。

    • 设备:表示已分配至该实例的设备发送消息。

      此时需要配置消息来源的具体产品或设备,请参见本表格中的产品设备参数说明。

    • 边缘应用:表示消息由边缘应用发出,需选择已分配给该边缘实例的应用名称。
      说明 仅函数计算类型的边缘应用,支持使用消息路由。
    • IoT Hub:表示消息由云端发出。
      此时,依赖网关产品下的如下自定义Topic类,请确认您的网关产品下是否已存在该Topic类。若没有,请添加该Topic类(操作方法请见自定义Topic)。
      • Topic类:/YourProductKey/${deviceName}/user/#,其中YourProductKey为变量,表示网关产品的ProductKey;${deviceName}通配DeviceName。
      • 设备操作权限:订阅。
    • 流数据分析:表示消息由流数据分析发出,需选择已分配给该实例的流数据分析任务名称。
    产品 当消息来源为设备时,需要选择消息来源的产品。
    • 全部产品:该边缘实例下的全部设备都是消息来源。
    • 选择多个产品:这些产品下已分配到边缘实例的所有设备都是消息来源。
      说明 一个消息路由,最多可同时选择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为原上云的数据内容。

    说明 服务级别选择1时,在网络异常状态下CPU和磁盘IO占用量会增加,当数据量很大时可能会耗尽系统磁盘和CPU资源。不同的系统性能其承受的负载上限有所不同,请您根据自身需求选择是否支持断网续传。
    说明
    • 有相同消息来源消息目标、不同消息主题过滤的路由,其消息最多转发一次。即路由执行后,如果有一条路由匹配成功,则剩余的路由不再匹配执行。
    • 有不同消息来源消息目标的所有路由,会依次匹配执行。

      此时可能会有逻辑上的重复执行转发消息的情况。 例如,一条路由消息来源是全部设备,消息目标是IoT Hub,另一条路由消息来源是设备A,消息目标也是IoT Hub;当设备A发送消息时,上述两条路由都会匹配执行,即设备A的数据向IoT Hub发送两次。