本文介绍如何应用事件总线EventBridge的事件流功能实现消息队列Kafka版的消息路由。
背景信息
事件流作为更轻量、实时端到端的流式事件通道,提供轻量流式数据的过滤和转换的能力,在不同的数据仓库之间、数据处理程序之间、数据分析和处理系统之间进行数据同步。源端消息队列Kafka版生产的消息可以通过事件流这个通道被路由到目标端的消息队列Kafka版,无需定义事件总线。更多信息,请参见事件流概述。
支持地域
支持在消息队列Kafka版之间创建事件流的地域有:华东2(上海)、华北2(北京)、华北3(张家口)、中国香港、德国(法兰克福)、新加坡和日本(东京)。
步骤一:在目标端创建事件流
说明 事件流需要在目标端创建,例如如果需要把华北2(北京)的Kafka消息路由到华东2(上海),那么需要在华东2(上海)创建事件流任务。
- 登录事件总线EventBridge控制台。
- 在顶部菜单栏,选择地域。
- 在左侧导航栏,单击事件流。
- 在事件流页面,单击创建事件流。
- 在创建事件流面板,完成以下操作。
- 在基本信息配置向导,输入事件流名称和描述,然后单击下一步。
- 在事件源配置向导,选择事件提供方为消息队列 Kafka 版,在阿里云服务授权 - VPC对话框,单击确定,配置以下参数,然后单击下一步。
参数 |
说明 |
示例 |
地域 |
选择消息队列Kafka版源实例所在的地域。
|
华北2(北京) |
kafka 实例 |
选择生产消息队列Kafka版消息的源实例。
|
MQ_INST_115964845466****_ByBeUp3p |
Topic |
选择生产消息队列Kafka版消息的Topic。
|
topic |
Tag(可选)
|
配置源实例中用于过滤消息的Tag。 |
test |
Group ID |
选择源实例的消费组名称。请使用独立的消费组来创建事件源,不要和已有的业务混用消费组,以免影响已有的消息收发。 |
GID_http_1 |
并发配额(消费者数) |
选择源实例的消费者数。 |
1 |
消费位点 |
选择开始消费消息的位点。
- 最新位点:从最新位点开始消费。
- 最早位点:从最初位点开始消费。
|
最新位点 |
网络配置 |
选择路由消息的网络类型。
|
默认网络 |
- 在规则配置向导,单击下一步。
- 在目标配置向导,选择服务类型为消息队列 Kafka 版,在阿里云服务授权 - VPC对话框,单击确定,配置以下参数,然后单击创建。
参数 |
说明 |
示例 |
实例ID |
选择接收消息队列Kafka版消息的目标实例。
|
MQ_INST_115964845466****_BYEiGXc4 |
Topic |
选择目标实例的Topic。 |
topic |
确认模式 |
选择目标端消息队列Kafka版接收到数据后给客户端发出的确认信号。
- None:客户端不需要等待任何确认收到的消息。
- LeaderOnly:等待Leader成功写入而不等待所有备份是否成功写入。
- All:等待Leader和所有备份都成功写入。
|
LeaderOnly |
消息内容 |
选择部分事件。事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。
|
$.data.value |
消息 Key |
选择部分事件。事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。
|
$.data.key |
- 返回事件流页面,找到创建好的事件流,在其右侧操作栏,单击启用。
- 在提示对话框,阅读提示信息,然后单击确认。
启用事件流后,会有30秒~60秒的延迟时间,您可以在事件流页面的状态栏查看启动进度。
步骤二:测试验证
- 登录消息队列Kafka版控制台。
- 在顶部菜单栏,选择步骤一:在目标端创建事件流中源实例所在的地域。
- 在左侧导航栏,单击实例列表。
- 在实例列表页面,找到步骤一:在目标端创建事件流中配置的源实例,在其操作列,单击详情。
- 在左侧导航栏,单击Topic 管理。
- 在Topic列表,单击步骤一:在目标端创建事件流中配置的源实例的Topic名称。
- 在Topic详情页面,单击右上角的体验发送消息。
- 在快速体验消息收发面板,选择发送方式为控制台,然后配置消息 Key和消息内容,单击确定。
- 在源实例完成生产消息后,返回实例列表页面。
- 在实例列表页面,找到步骤一:在目标端创建事件流中配置的目标实例,在其操作列,单击详情。
- 在左侧导航栏,单击Topic 管理。
- 在Topic列表,单击步骤一:在目标端创建事件流中配置的目标实例的Topic名称。
- 在Topic详情页面,单击消息查询。
- 配置查询方式、分区和时间点,单击查询。
- 查看查询到的Key和Value值是否与生产的消息一致。