分布式消息服务RocketMQ版
本章节介绍在事件流里添加分布式消息服务RocketMQ版事件源的方法。
前提条件
- 已在分布式消息服务RocketMQ版中购买RocketMQ实例。
- 当源端为分布式消息服务RocketMQ版时,目标端只支持选择FunctionGraph(函数计算)。
创建分布式消息服务RocketMQ版事件源
- 登录事件网格控制台。
- 在左侧导航栏选择“事件流 > Serverless版事件流”,进入“Serverless版事件流”页面。
- 单击“创建Serverless版事件流”,然后单击左上角图标,输入事件流名称和描述,完成后单击“确定”。
- 单击“事件源”,弹出“配置事件源”对话框。
图1 配置事件源
- 参考表1,填写事件源的配置信息。
表1 分布式消息服务RocketMQ版参数说明 参数名称
说明
事件提供方
选择分布式消息服务 RocketMQ版。
实例
请选择实例。
Group
请输入消费组。
Topic
请输入Topic。
SSL
请选择是否开启SSL。
ACL访问控制
请选择是否开启ACL访问控制。
说明:- 当开启ACL访问控制时,需要配置用户名及密钥。
- 确保创建的RocketMQ实例和配置RocketMQ事件源二者的“ACL访问控制”开关状态保持一致。
tag
请输入tag。
消费超时时间(毫秒)
请输入1000到900000之间的整数。
消费方式
请选择“并发消费”或“顺序消费”。
消费线程数
请输入20到64之间的整数。
批量消费最大消息数
请输入1到32之间的整数。
最大重试次数
请输入最大重试次数。
说明:- 设置-1表示无限重试,0表示不重试。
- 如果RockrtMQ版本为4.x版本,则默认允许每条消息最多重试16次,每次重试的时间间隔如表2所示。
重试间隔(毫秒)
请输入1000到30000之间的整数。
表2 RockrtMQ 4.x版本重试时间间隔 第几次重试
与上次重试的间隔时间
第几次重试
与上次重试的间隔时间
1
10秒
9
7分钟
2
30秒
10
8分钟
3
1分钟
11
9分钟
4
2分钟
12
10分钟
5
3分钟
13
20分钟
6
4分钟
14
30分钟
7
5分钟
15
1小时
8
6分钟
16
2小时
表3 生产顺序性和消费顺序性组合 生产顺序
消费顺序
顺序性效果
设置消息组,保证消息顺序发送。
顺序消费
按照消息组粒度,严格保证消息顺序。 同一消息组内的消息的消费顺序和发送顺序完全一致。
设置消息组,保证消息顺序发送。
并发消费
并发消费,尽可能按时间顺序处理。
未设置消息组,消息乱序发送。
顺序消费
按队列存储粒度,严格顺序。 基于 Apache RocketMQ 本身队列的属性,消费顺序和队列存储的顺序一致,但不保证和发送顺序一致。
未设置消息组,消息乱序发送。
并发消费
并发消费,尽可能按照时间顺序处理。
- 单击“下一步”,进入规则配置页面,规则配置可参考过滤规则参数说明。
图2 规则配置
- 单击“下一步”完成规则配置,您可以参考路由到函数工作流,继续配置事件流的事件目标。
事件源配置为分布式消息服务RocketMQ版时,配置事件目标为FunctionGraph(函数计算)时,执行方式可选择为“同步”或“异步”。
- 当事件源和事件目标都配置完成后,单击“保存”,完成事件流的创建。
- MQ采集函数首次启动分钟级后生效。
- 广播模式下不支持失败重试,即消费失败后,失败消息不再重试,消费者继续消费新的消息。
- 发送到目标端失败时,将利用RocketMQ本身的重试能力进行重试,目标端需支持处理重复事件,达到重试上限时,源端消息进入RocketMQ对应topic的死信队列,EG事件不再投递。