使用 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