本文介绍如何应用事件总线EventBridge的事件流功能实现消息队列RocketMQ版的消息路由。

前提条件

背景信息

事件流作为更轻量、实时端到端的流式事件通道,提供轻量流式数据的过滤和转换的能力,在不同的数据仓库之间、数据处理程序之间、数据分析和处理系统之间进行数据同步。源端消息队列RocketMQ版生产的消息可以通过事件流这个通道被路由到目标端的消息队列RocketMQ版,无需定义事件总线。更多信息,请参见事件流概述

步骤一:在目标端创建事件流

说明 事件流需要在目标端创建,例如如果需要把华北2(北京)的RocketMQ消息路由到华东1(杭州),那么需要在华东1(杭州)创建事件流任务。
  1. 登录事件总线EventBridge控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,单击事件流
  4. 事件流页面,单击创建事件流
    创建事件流
  5. 创建事件流面板,完成以下操作。
    1. 基本信息配置向导,输入事件流名称和描述,然后单击下一步
    2. 事件源配置向导,选择事件提供方消息队列 RocketMQ版,配置以下参数,然后单击下一步
      参数说明示例
      地域选择消息队列RocketMQ版源实例所在的地域。华东1(杭州)
      RocketMQ 实例选择生产消息队列RocketMQ版消息的源实例。MQ_INST_115964845466****_ByBeUp3p
      Topic选择生产消息队列RocketMQ版消息的Topic。topic
      Tag配置源实例中用于过滤消息的Tag。test
      Group ID选择源实例的消费组名称。请使用独立的消费组来创建事件源,不要和已有的业务混用消费组,以免影响已有的消息收发。GID_http_1
      消费位点选择开始消费消息的位点。
      • 最新位点:从最新位点开始消费。
      • 最早位点:从最初位点开始消费。
      • 指定时间戳:从指定位点开始消费。
      最新位点
    3. 规则配置向导,单击下一步
    4. 目标配置向导,选择服务类型消息队列 RocketMQ版,配置以下参数,然后单击创建
      参数说明示例
      实例ID选择接收消息队列RocketMQ版消息的目标实例。MQ_INST_115964845466****_BYEiGXc4
      Topic选择目标实例的Topic。demo
      Body选择部分事件事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。$.data.body
      Properties选择模板。您可以自定义一个模板,定义模板里需要的变量,事件总线EventBridge可以提取事件中的字段,按照模板定义的形式进行转换。
      说明 如果需要全量传递源端的RocketMQ消息的属性,推荐使用示例中配置。
      变量
      {
        "userProperties":"$.data.userProperties",
        "msgId":"$.data.systemProperties.UNIQ_KEY"
      }
      模板
      {
        "EB_SYS_EMBED_OBJECT":"${userProperties}",
        "UNIQ_KEY":"${msgId}"
      }
      Keys选择部分事件事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。
      说明 如果需要全量传递源端的RocketMQ消息的属性,推荐使用示例中配置。
      $.data.systemProperties.KEYS
      Tags选择部分事件事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。
      说明 如果需要全量传递源端的RocketMQ消息的属性,推荐使用示例中配置。
      $.data.systemProperties.TAGS
  6. 返回事件流页面,找到创建好的事件流,在其右侧操作栏,单击启用
  7. 提示对话框,阅读提示信息,然后单击确认
    启用事件流后,会有30秒~60秒的延迟时间,您可以在事件流页面的状态栏查看启动进度。

步骤二:测试验证

  1. 登录消息队列RocketMQ版控制台
  2. 在顶部菜单栏,选择步骤一:在目标端创建事件流中源实例所在的地域。
  3. 在左侧导航栏,单击实例列表
  4. 实例列表页面,找到步骤一:在目标端创建事件流中配置的源实例,在其操作列,单击详情
    查看实例
  5. 在左侧导航栏,单击Topic 管理
  6. 在Topic列表,单击步骤一:在目标端创建事件流中配置的源实例的Topic名称。
  7. 在Topic详情页面,单击右上角的快速体验
  8. 快速体验的消息生产和消费面板,选择发送方式控制台,然后配置消息内容消息 Key消息 Tag,单击确定
    发送消息消息发送成功后,界面会提示消息发送成功!,并显示Message ID。
  9. 在源实例完成生产消息后,返回实例列表页面。
  10. 实例列表页面,找到步骤一:在目标端创建事件流中配置的目标实例,在其操作列,单击详情
  11. 在左侧导航栏,单击Topic 管理
  12. 在Topic列表,单击步骤一:在目标端创建事件流中配置的目标实例的Topic名称。
  13. 在Topic详情页面,单击消息查询
  14. 配置查询方式查询范围,单击查询
    查询消息
  15. 查看查询到的Message ID、Tag和Key值是否与生产的消息一致。