规则说明

更新时间:

云消息队列 MQTT 版支持通过Kafka规则将消息流转至云消息队列 Kafka 版实例指定的Topic中,本文为您介绍Kafka规则的创建、修改和删除等操作。

流程说明

云消息队列 MQTT 版通过Kafka规则将发送消息和事件消息流转至云消息队列 Kafka 版,流程如下所示:

  • 发送消息

    image
  • 事件消息

    image

注意事项

  • 仅支持云消息队列 MQTT 版铂金版和专业版实例。如需使用Kafka规则功能,请提交工单进行申请。

  • 不支持跨地域创建规则,云消息队列 MQTT 版云消息队列 Kafka 版的实例必须处于同一地域。

  • 暂不支持云消息队列 Confluent 版Kafka实例。

  • 单个云消息队列 MQTT 版实例最多创建10条规则。

  • 路由到云消息队列 Kafka 版的实例不超过3个。

  • 首次使用时,系统将自动创建目标服务的关联角色AliyunServiceRoleForMqttCoreRuleEngine,以实现数据流转功能。详情请参见服务关联角色

  • 当前仅支持JSON格式的消息。

  • 规则状态影响说明:

    • 已停用/待启用:相应的数据将被忽略,且不会流转到云消息队列 Kafka 版实例。

    • 已启用:自启用之时起,数据将开始流转至云消息队列 Kafka 版实例。

    • 停用后重新启用:重新启用后,数据将开始流转至云消息队列 Kafka 版实例。停用的这段时间内被忽略的数据无法恢复。

计费说明

云消息队列 MQTT 版Kafka规则功能目前处于公测阶段,暂不收取费用,但会对TPS进行统计,并根据规格限制TPS的上限。

创建规则

  1. 登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表

  2. 在顶部菜单栏选择目标地域,然后在实例列表中单击实例名称进入实例详情页面。

  3. 在左侧导航栏单击规则管理

  4. 规则管理页面,单击Kafka 规则页签,然后单击创建规则

  5. 创建规则页面完成以下操作。

    1. 规则配置向导页面,填写规则的基本信息,然后单击下一步

      • 规则名称:输入规则名称。

      • SQL配置:配置SQL规则。

        • SQL编辑器:在SQL编辑器输入对应的SQL。详情请参见SQL语法和示例

        • 测试验证:开启后可以模拟发送消息和事件消息,验证SQL规则执行的结果。

          参数

          取值示例

          说明

          数据源

          发送消息

          选择数据来源类型。

          • 发送消息

          • 连接 ($event/connect)

          • 断连 ($event/close)

          • 订阅 ( $event/subscribe )

          • 取消订阅 ( $event/unsubscribe )

          • 消息确认 ($event/ack)

          TCP连接标识ID

          7f0d1eb80b6f4546***********d3

          TCP连接标识ID。

          客户端ID

          GID_test@@@Demo

          自定义客户端ID。

          MsgId

          8082B11AC7584C************F5CD

          系统生成的消息唯一ID,不是协议SDK自带的消息ID。

          主题

          myTopic

          云消息队列 MQTT 版Topic,需要和SQL配置中保持一致。

          Payload

          {
              "testKey": "testValue",
              "testKey1": "testValue1"
          }

          测试消息。

          Protocol

          MQTT_5

          协议版本:

          • MQTT_5

          • MQTT_3_1_1

          数据源连接 ($event/connect)时设置参数。

          客户端IP

          192.0.0.1

          客户端IP地址。当数据源连接 ($event/connect)时设置参数。

          是否保存离线

          是否保存离线状态。当数据源连接 ($event/connect)时设置参数。

          心跳保活时间间隔(秒)

          60

          心跳间隔时间。当数据源连接 ($event/connect)时设置参数。

          连接是否被接受

          是否接受连接。当数据源连接 ($event/connect)时设置参数。

          是否开启新会话

          是否开启新会话。当数据源连接 ($event/connect)时设置参数。

          会话过期时间(秒)

          60

          会话过期时间。当数据源连接 ($event/connect)时设置参数。

          MQTT连接用户名

          userTest

          连接用户名称。当数据源连接 ($event/connect)时设置参数。

          断连信息

          someMessage

          断开连接时发送的信息。当数据源断连 ($event/close)时设置参数。

          QoS

          1

          消息传输的服务质量,包含以下级别:

          • 0:代表最多分发一次。

          • 1:代表至少达到一次。

          • 2:代表仅分发一次。

          数据源订阅 ( $event/subscribe )时设置参数。

    2. 目标配置向导页面,配置数据的流转目标,然后单击创建

      参数

      取值示例

      说明

      目标类型

      云消息队列 Kafka 版

      指定将源数据转发至的目标云产品。

      Kafka实例ID

      alikafka_post-cn-test

      选择云消息队列 Kafka 版的实例ID。

      Topic

      topic_test

      选择云消息队列 Kafka 版实例的Topic。

      投递策略

      Clientidhash投递到Topic中的不同partition

      消息投递策略:

      • Clientidhash 投递到Topic中的不同partition

      • 无策略

      可用区

      vsw-test

      选择可用区的交换机ID。

      重要

      在所选的云消息队列 Kafka 版实例所属的安全组规则配置中,添加此处选择交换机对应的IP网段。

查看规则详情

  1. 规则管理页面,单击Kafka 规则页签。

  2. 在规则列表中找到目标规则,在其操作列中,单击详情

  3. 规则详情页面,查看基础信息规则源规则目标等信息。

启用/停用规则

  1. 规则管理页面,单击Kafka 规则页签。

  2. 在规则列表中找到目标规则,在其操作列中,单击启用/停用

  3. 在弹出的提示对话框,单击确认

编辑规则

  1. 规则管理页面,单击Kafka 规则页签。

  2. 在规则列表中找到目标规则,在其操作列中,单击编辑

  3. 编辑规则页面,完成以下操作。

    1. 规则配置向导页面,修改SQL配置,然后单击下一步

    2. 目标配置向导页面,修改Topic或者投递策略,然后单击保存

      参数

      取值示例

      说明

      Topic

      topic_test

      选择云消息队列 Kafka 版实例的Topic。

      投递策略

      Clientidhash投递到Topic中的不同partition

      消息投递策略:

      • Clientidhash 投递到Topic中的不同partition

      • 无策略

删除规则

  1. 规则管理页面,单击Kafka 规则页签。

  2. 在规则列表中找到目标规则,然后在其操作列选择image > 删除

  3. 在弹出的提示对话框,单击确认

相关文档

SQL语法和示例