规则说明
云消息队列 MQTT 版支持通过Kafka规则将消息流转至云消息队列 Kafka 版实例指定的Topic中,本文为您介绍Kafka规则的创建、修改和删除等操作。
流程说明
云消息队列 MQTT 版通过Kafka规则将发送消息和事件消息流转至云消息队列 Kafka 版,流程如下所示:
发送消息
事件消息
注意事项
仅支持云消息队列 MQTT 版铂金版和专业版实例。如需使用Kafka规则功能,请提交工单进行申请。
不支持跨地域创建规则,云消息队列 MQTT 版和云消息队列 Kafka 版的实例必须处于同一地域。
暂不支持云消息队列 Confluent 版Kafka实例。
单个云消息队列 MQTT 版实例最多创建10条规则。
路由到云消息队列 Kafka 版的实例不超过3个。
首次使用时,系统将自动创建目标服务的关联角色
AliyunServiceRoleForMqttCoreRuleEngine
,以实现数据流转功能。详情请参见服务关联角色。当前仅支持JSON格式的消息。
规则状态影响说明:
已停用/待启用:相应的数据将被忽略,且不会流转到云消息队列 Kafka 版实例。
已启用:自启用之时起,数据将开始流转至云消息队列 Kafka 版实例。
停用后重新启用:重新启用后,数据将开始流转至云消息队列 Kafka 版实例。停用的这段时间内被忽略的数据无法恢复。
计费说明
云消息队列 MQTT 版Kafka规则功能目前处于公测阶段,暂不收取费用,但会对TPS进行统计,并根据规格限制TPS的上限。
创建规则
登录云消息队列 MQTT 版控制台,并在左侧导航栏单击实例列表。
在顶部菜单栏选择目标地域,然后在实例列表中单击实例名称进入实例详情页面。
在左侧导航栏单击规则管理。
在规则管理页面,单击Kafka 规则页签,然后单击创建规则。
在创建规则页面完成以下操作。
在规则配置向导页面,填写规则的基本信息,然后单击下一步。
规则名称:输入规则名称。
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 )时设置参数。
在目标配置向导页面,配置数据的流转目标,然后单击创建。
参数
取值示例
说明
目标类型
云消息队列 Kafka 版
指定将源数据转发至的目标云产品。
Kafka实例ID
alikafka_post-cn-test
选择云消息队列 Kafka 版的实例ID。
Topic
topic_test
选择云消息队列 Kafka 版实例的Topic。
投递策略
按Clientid的hash投递到Topic中的不同partition
消息投递策略:
按Clientid的hash 投递到Topic中的不同partition
无策略
可用区
vsw-test
选择可用区的交换机ID。
重要在所选的云消息队列 Kafka 版实例所属的安全组规则配置中,添加此处选择交换机对应的IP网段。
查看规则详情
在规则管理页面,单击Kafka 规则页签。
在规则列表中找到目标规则,在其操作列中,单击详情。
在规则详情页面,查看基础信息、规则源和规则目标等信息。
启用/停用规则
在规则管理页面,单击Kafka 规则页签。
在规则列表中找到目标规则,在其操作列中,单击启用/停用。
在弹出的提示对话框,单击确认。
编辑规则
在规则管理页面,单击Kafka 规则页签。
在规则列表中找到目标规则,在其操作列中,单击编辑。
在编辑规则页面,完成以下操作。
在规则配置向导页面,修改SQL配置,然后单击下一步。
在目标配置向导页面,修改Topic或者投递策略,然后单击保存。
参数
取值示例
说明
Topic
topic_test
选择云消息队列 Kafka 版实例的Topic。
投递策略
按Clientid的hash投递到Topic中的不同partition
消息投递策略:
按Clientid的hash 投递到Topic中的不同partition
无策略
删除规则
在规则管理页面,单击Kafka 规则页签。
在规则列表中找到目标规则,然后在其操作列选择
在弹出的提示对话框,单击确认。