文档首页/ 事件网格 EG/ 用户指南/ 事件流/ 事件源/ 分布式消息服务RocketMQ版
更新时间:2024-09-05 GMT+08:00

分布式消息服务RocketMQ版

本章节介绍在事件流里添加分布式消息服务RocketMQ版事件源的方法。

前提条件

  • 已在分布式消息服务RocketMQ版中购买RocketMQ实例。
  • 当源端为分布式消息服务RocketMQ版时,目标端只支持选择FunctionGraph(函数计算)。

创建分布式消息服务RocketMQ版事件源

  1. 登录事件网格控制台。
  2. 在左侧导航栏选择“事件流 > Serverless版事件流”,进入“Serverless版事件流”页面。
  3. 单击“创建Serverless版事件流”,然后单击左上角图标,输入事件流名称和描述,完成后单击“确定”。
  4. 单击“事件源”,弹出“配置事件源”对话框。

    图1 配置事件源

  5. 参考表1,填写事件源的配置信息。

    表1 分布式消息服务RocketMQ版参数说明

    参数名称

    说明

    事件提供方

    选择分布式消息服务 RocketMQ版。

    实例

    请选择实例。

    Group

    请输入消费组。

    Topic

    请输入Topic。

    SSL

    请选择是否开启SSL。

    ACL访问控制

    请选择是否开启ACL访问控制。

    说明:

    当开启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 本身队列的属性,消费顺序和队列存储的顺序一致,但不保证和发送顺序一致。

    未设置消息组,消息乱序发送。

    并发消费

    并发消费,尽可能按照时间顺序处理。

  6. 单击“下一步”,进入规则配置页面,规则配置可参考过滤规则参数说明

    图2 规则配置

  7. 单击“下一步”完成规则配置,您可以参考路由到函数工作流,继续配置事件流的事件目标。

    事件源配置为分布式消息服务RocketMQ版时,配置事件目标为FunctionGraph(函数计算)时,执行方式可选择为“同步”或“异步”。

  8. 当事件源和事件目标都配置完成后,单击“保存”,完成事件流的创建。

    • MQ采集函数首次启动分钟级后生效。
    • 广播模式下不支持失败重试,即消费失败后,失败消息不再重试,消费者继续消费新的消息。
    • 发送到目标端失败时,将利用RocketMQ本身的重试能力进行重试,目标端需支持处理重复事件,达到重试上限时,源端消息进入RocketMQ对应topic的死信队列,EG事件不再投递。