使用 EventBridge 实现消息路由

简介: 通过本教程的操作,您可以通过阿里云控制台,在事件总线控制台中创建消息路由服务,在 EventBridge 控制台实现消息路由与简单的消息脱敏。

使用 EventBridge 实现消息路由


1. 概述

4e39ec05bb0e7748324a9e1582c4661d_ymx73xcooyslq_9d1d65dea6a4442ca362913add0ebc06.png

本实验分 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

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 运维 自然语言处理
EventBridge消息路由|高效构建消息路由能力
企业数字化转型过程中,天然会遇到消息路由,异地多活,协议适配,消息备份等场景。本篇主要通过 EventBridge 消息路由的应用场景和应用实验介绍,帮助大家了解如何通过 EventBridge 的消息路由高效构建消息路由能力。
220 0
EventBridge消息路由|高效构建消息路由能力
|
1月前
|
JavaScript 调度
Vue事件总线(EventBus)使用指南:详细解析与实战应用
Vue事件总线(EventBus)使用指南:详细解析与实战应用
57 1
|
3月前
|
JavaScript
Vue学习之--------全局事件总线(2022/8/22)
这篇文章介绍了Vue中全局事件总线(GlobalEventBus)的概念和使用方法,它允许不同组件之间进行通信。文章通过图解和代码实例详细解释了如何安装全局事件总线、在组件中接收和提供数据,以及如何在组件销毁前解绑事件,以避免潜在的内存泄漏问题。
Vue学习之--------全局事件总线(2022/8/22)
|
6月前
|
JavaScript
解释 Vue 的事件总线和 emits 属性。
解释 Vue 的事件总线和 emits 属性。
76 3
|
6月前
|
JavaScript
在Vue中,如何使用事件总线来传递数据和触发事件?
在Vue中,如何使用事件总线来传递数据和触发事件?
96 0
|
6月前
|
JavaScript 程序员
Vue中的全局事件总线是什么?如何使用?
Vue中的全局事件总线是什么?如何使用?
78 0
|
6月前
|
JavaScript 前端开发 API
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
385 0
|
6月前
【Vue2.0学习】—全局事件总线GlobalEventBus(六十一)
【Vue2.0学习】—全局事件总线GlobalEventBus(六十一)
|
11月前
|
JavaScript
Vue全局事件总线(任意组件间通信)
Vue全局事件总线(任意组件间通信)
|
11月前
【Vue2.0】— 全局事件总线GlobalEventBus(十九)
【Vue2.0】— 全局事件总线GlobalEventBus(十九)