使用 EventBridge 实现消息路由
1. 概述

本实验分 A B 两个可选场景:
- A 场景通过MNS Queues1 投递至MNS Queues2
- B 场景通过MNS Queues1 投递至RabbitMQ Queues
可根据兴趣选择不同场景进行体验,也可配置两条链路分别验证。
2. 创建 MNS 资源(A/B场景通用)
本步骤将指导您如何通过控制台创建消息队列 MNS 版。
使用您自己的阿里云账号登录阿里云控制台,然后访问消息队列MNS版控制台。
在控制台左边导航栏中,单击队列列表。(资源地域为同地域即可,本次引导默认选杭州)

在列表页面,单击创建队列并填写名称信息“test-mns-q”

创建完成后点击“详情”

找到 MNS 公网接入点信息,并记住该信息,后续实验会用到。
E.g. http://1825725063814405.mns.cn-hangzhou.aliyuncs.com

注意:重复如上步骤即可 创建 A实验 链路的 “test-mns-q2”

3. 创建 RabbitMQ 资源(B 实验可选)
本步骤将指导您如何通过控制台创建消息队列 RabbitMQ 版。
使用您自己的阿里云账号登录阿里云控制台,然后访问消息队列RabbitMQ版控制台。
在控制台左边导航栏中,单击实例列表。(资源地域为同地域即可,本次引导默认选杭州)

在列表页面,单击创建实例,并完成创建

创建完成后点击详情进入实例详情页

在“Vhost列表” 创建 “test-amqp-v”

在“Queue列表” ,选择Vhost为“test-amqp-v”,并创建 “test-amqp-q”


4. 创建 EventBridge 事件流任务 - MNS TO MN
本步骤将指导您如何通过控制台创建 EventBridge 事件流。
使用您自己的阿里云账号登录阿里云控制台,然后访问EventBridge 控制台。 注:第一次使用需开通。
单击“事件流”列表,并在列表创建任务 (资源地域为同地域即可,本次引导默认选杭州)

创建事件流名称为“test-amqp-mns2mns”,点击下一步

指定事件源,事件提供方为“消息服务MNS”,队列名称为“test-mns-q”,点击下一步

指定规则,规则部分可不做筛选,默认匹配全部,直接点击下一步
注意:规则内容可根据需求自行指定,为降低难度本次实验默认投递全部 更多详情

服务类型选择“消息服务MNS”,队列名称选择“test-mns-q2”,消息内容选择“部分事件”,点击创建
注意:消息内容可根据需求自行指定,本次实验默认投递data字段,更多详情

创建完成后,可点击“启动”来启动事件流

5. 创建 EventBridge 事件流任务 - MNS TO Ra
本步骤将指导您如何通过控制台创建 EventBridge 事件流。
使用您自己的阿里云账号登录阿里云控制台,然后访问EventBridge 控制台。 注:第一次使用需开通。
单击“事件流”列表,并在列表创建任务 (资源地域为同地域即可,本次引导默认选杭州)

创建事件流名称为“test-amqp-mns2rabbitmq”,点击下一步

指定事件源,事件提供方为“消息服务MNS”,队列名称为“test-mns-q”,点击下一步

指定规则,规则部分可不做筛选,默认匹配全部,直接点击下一步
注意:规则内容可根据需求自行指定,为降低难度本次实验默认投递全部 更多详情

服务类型选择“消息队列 RabbitMQ 版本”,具体配置如下,点击创建
实例ID:选择创建好的RabbitMQ ID
Vhost:选择“test-amqp-v”
目标类型:选择“Queue”
Queue:选择“test-amqp-q”
Body:选择“部分事件”,可填写“$.data”
MessageId:选择“常量”,可填写“0”
Properties:选择“部分事件”,如未有特殊诉求,可填写“$.data”
参数名称 | 参数说明 |
实例 ID | 选择已创建的消息队列 RabbitMQ 版的实例ID。 |
Vhost | 选择已创建的Vhost。 |
目标类型 | 选择Exchange 模式或Queue 模式。 |
Exchange | 选择已创建的Exchange。仅当目标类型选择为Exchange时,需配置此参数。 |
Routing Key | 单击部分事件或常量。仅当目标类型选择为Exchange时,需配置此参数。 |
Queue | 选择已创建的Queue。仅当目标类型选择为Queue 模式时,需配置此参数。 |
Body | 单击完整事件、部分事件、常量或模板。 |
MessageId | 单击部分事件、常量或模板。 |
Properties | 单击部分事件或模板。 该参数取值类型为Map。 |
注意:消息内容可根据需求自行指定,本次实验默认投递data字段 更多详情


创建完成后,可点击“启动”来启动事件流
6. 验证同步任务
向 MNS 源端 Queues, “test-mns-q ” 发送实验消息 点击下载MNS SDK
修改 sample.cfg

在 “sample.cfg ” 填写AccessKeyId,AccessKeySecret,Endpoint 等信息
AccessKeyId,AccessKeySecret 可在 阿里云RAM 控制台创建
Endpoint 即 步骤1 , MN S公网接入点地址

AccessKeyId = LTAI5t96yU2S2E84BYsNNQ33
AccessKeySecret = xxxxxxx
Endpoint = http://1825725063814405.mns.cn-hangzhou.aliyuncs.com
填完效果如下,保存

找到 sample 目录的“sendmessage.py” 示例

将循环参数调整为200,并保存 (可选)

运行 “python sendmessage.py test-mns-q”
python sendmessage.py test-mns-q

在事件流控制台,分别点开 “test-mns-q2”, “test-amqp-q” 查看详情转储详情。
注意:MNS Q 仅支持单订阅,不支持广播模式。故如需测试两条任务,需要将 MNS/RabbitMQ 两个实验,任选其一关停后进行实验。如需广播模式,请创建 MNS Topic 资源。

A 链路实验结果:

B 链路实验结果:

实验链接:https://developer.aliyun.com/adc/scenario/11750ce706f4423bbaec443727677f50