简介:企业数字化转型过程中,自然会出现消息路由、异地多活、协议适配、消息备份等场景。本文主要介绍EventBridge消息路由的应用场景和应用实验,帮助我们了解如何通过EventBridge消息路由高效地构建消息路由能力。
作者:孟垦
企业数字化转型过程中,自然会出现消息路由、异地多活、协议适配、消息备份等场景。本文主要介绍EventBridge消息路由的应用场景和应用实验,帮助我们了解如何通过EventBridge消息路由高效地构建消息路由能力。
背景知识EventBridge消息路由主要涉及以下云产品和服务:
事件总线EventBridge是阿里云提供的无服务器事件总线服务,支持阿里云服务、定制应用和SaaS应用的标准化集中访问,并可以使用标准化的CloudEvents 1.0协议在这些应用之间路由事件,帮助您轻松构建松耦合、分布式的事件驱动架构。
阿里云消息队列RabbitMQ版本支持AMQP协议,全面兼容RabbitMQ开源生态和多语言客户端,打造分布式、高吞吐量、低延迟、高可扩展性的云消息服务。开箱即用,用户无需部署运维免维护,轻松快速接入云端。阿里云提供全托管服务,更专业、更可靠、更安全。
阿里云消息服务MNS版是一种高效、可靠、安全、方便、灵活的分布式消息通知服务。MNS可以帮助应用程序开发人员在应用程序的分布式组件上自由传输数据和通知消息,并构建松散耦合的系统。
场景应用EventBridge消息路由功能在构建消息系统的过程中主要用于以下三种场景,一是消息路由场景,二是消息活跃度场景,三是多协议适配场景,下面简单介绍一下。
消息路由方案
这种场景是指你要将消息分两次发布,通过简单的过滤或筛选,将消息分发给其他话题或跨区域话题,实现消息共享&消息脱敏的场景。
通过第一层转发将消息分发给不同的主题消费者是消息路由的核心能力。随着企业的转型,消息拆分、业务脱敏的场景会越来越多。下图是一个典型的路线改道场景。
消息活跃场景
message live场景意味着每个数据中心都部署了一个完整且独立的MQ集群。数据中心的应用服务只连接到本地的MQ集群,不连接到其他单元的MQ集群。MQ集群中包含的消息路由模块负责在不同的单元MQ集群之间同步具有指定主题的消息。
根据应用服务是否具有单元化能力,可以分为中心服务和单元服务两大类。服务只在一个数据中心提供服务;unit service在每一个数据中心都提供服务,但只对部分符合规则的用户负责,而不是对所有用户负责。
所有部署了单元服务的数据中心是一个单元,所有单元的单元服务同时对外提供服务,从而形成异地多活动架构或单元化架构。通过多活动管控平台,可以动态调整各个单元服务的流量。
多协议适配场景
随着业务团队的规模越来越大,新闻建设的需求与日俱增,部门之间的技术栈不同,会导致部门之间的新闻协议不同。多协议适配是指从一种消息协议平滑迁移到多种消息协议的能力。
EventBridge的事件流功能用于消息路由。事件流模型是EventBridge在消息领域的主要处理模型,适用于没有总线概念的标准流(1:1)流处理场景。用于端到端的消息路由、消息转储、消息同步和处理等。,帮助开发者在云上轻松构建数据管道服务。
以下架构显示了如何通过桥接EventBridge将MNS消息路由到RabbitMQ队列、MNS队列。(A/B链接可以在任何一个进行测试)
目标
通过本实验教程的操作,可以通过阿里云控制台在事件总线控制台创建消息路由服务,在EventBridge控制台实现消息路由和简单的消息脱敏。
经历了这个实验,你可以掌握以下知识:
资源
使用的资源如下:(本实验中的资源遵循最小原则,使用满足场景需求的最小资源)
步骤
1)创建MNS资源
实验分为A /B两个可选场景:
A、场景通过MNS队列1
b交付给MnS队列2,场景交付给RabbitMQ队列。
可以根据兴趣选择不同的场景。
这一步将指导您如何通过控制台创建MNS版本的消息队列。
使用您自己的阿里云帐户登录阿里云控制台,然后访问消息队列MNS控制台。[1]
在控制台左侧导航栏中,单击队列列表。(资源区域可以是同一个区域,本指南默认选择杭州)
在列表页面,点击创建队列,填写名称信息“test-mns-q”
创建后点击“详细信息”。
找到MNS公共网络的接入点信息,并记住这些信息,以便在后续实验中使用。
如http://1825725063814405 . MnS . cn-Hangzhou . aliyuncs . com
注意:重复上述步骤创建一个实验链路的“测试-MnS-Q2”
2)创建RabbitMQ资源(对于bExperiment是可选的)
这一步将指导您如何通过控制台创建RabbitMQ版本的消息队列。
用自己的阿里云账号登录阿里云控制台,然后访问消息队列RabbitMQ版本控制台。[2]
在控制台左侧导航栏中,单击实例列表。(资源区域可以是同一个区域,本指南默认选择杭州)
在列表页面上,单击创建实例并完成创建。
创建完成后,点击〖详细〗按钮,进入实例详细信息页面;
在“Vhost列表”中创建“test-amqp-v”;
在队列列表中,选择Vhost作为test-amqp-v,并创建test-amqp-q;
3)创建EventBridge事件流任务-MNS到MNS(实验可选)
此步骤将指导您如何通过控制台创建EventBridge事件流。
用自己的阿里云账号登录阿里云控制台,然后访问EventBridge控制台。[3]
注意:第一次需要开启。
点击“事件流”列表,在列表中创建一个任务(资源区域是同一个区域,本指南默认选择杭州)。
创建名为“test-amqp-mns2mns”的事件流,并单击下一步;
指定事件源,事件提供者为“消息服务MNS”,队列名为“test-mns-q”,点击下一步;
指定规则,规则可以不过滤默认匹配,直接点击下一步;
注:规则内容可根据需要指定。为了降低难度,在这个实验中所有的规则都是默认交付的。有关更多详情,请参考:
https://help.aliyun.com/document_detail/181432.html
选择“消息服务MNS”作为服务类型,“测试-mns-q2”作为队列名称,“部分事件”作为消息内容,然后单击“创建”。
注:消息内容可根据需要指定。本实验中的默认交货数据字段,请参考:
https://help.aliyun.com/document_detail/181429.html
创建后,单击Start启动事件流。
4)创建EventBridge事件流任务-MnS到Rabbit MQ(对于bExperiment是可选的)
此步骤将指导您如何通过控制台创建EventBridge事件流。
用自己的阿里云账号登录阿里云控制台,然后访问EventBridge控制台。[3]注意:需要第一次开启。
点击“事件流”列表,在列表中创建一个任务(资源区域是同一个区域,本指南默认选择杭州)。
创建名为“test-amqp-mns2rabbitmq”的事件流,然后单击next。
指定事件源,事件提供者为“消息服务MNS”,队列名为“test-mns-q”,然后单击下一步。
指定规则,规则可以默认匹配,不需要过滤。直接点击下一步。
注:规则内容可根据需要指定。为了降低难度,在这个实验中所有的规则都是默认交付的。有关更多详情,请参考:
https://help.aliyun.com/document_detail/181432.html
选择消息队列RabbitMQ版本作为服务类型。具体配置如下。单击创建。
例:选择创建的rabbitmq ID vhost:选择test-amqp-v 目标类型:选择队列 队列:选择test-amqp-q 主体:选择部分事件,并填写。填写“0” 属性:选择“部分事件”,填写“$”。来源”。注:消息内容可根据需求自行指定,本实验默认传递数据字段。请参考:
https://help.aliyun.com/document_detail/181429.html
创建后,单击Start启动事件流。
5)验证路由任务。
发送实验消息到MNS来源“test-MnS-Q-Q”
点击下载MNS SDK[4]
修改sample.cfg
用AccessKeyId、AccessKeySecret、Endpoint等信息填充“sample.cfg”。
AccessKeyId,AccessKeySecret可以在阿里云RAM控制台[5]中创建
端点是步骤1,MNS公网的接入点地址。
accesskeyid = ltai 5t 96 yu2s 2 e 84 bys nnq 33 AccessKeysecret = XXXXXXX Endpoint = http://1825725063814405.mns.cn-hangzhou.aliyuncs.com。填充效果如下,保存。
找到示例目录的“sendmessage.py”示例。
将循环参数调整为200并保存(可选)
并保存“python sendmessage.py test-mns-q”
python sendmessage.py test-mns-q
python sendmessage . py test-MnS-q
在事件流控制台[6],单击“test-mns-q2”和“test-amqp-q”查看详细信息转储的详细信息。
注:MNS Q仅支持单次订阅,不支持广播模式。因此,这个测试需要关闭MNS/RabbitMQ实验中的任何一个。
对于广播模式,请创建MNS主题资源。
一个链接实验结果:
B环节的实验结果:
EventBridge事件流提供端到端的消息路由能力,可以通过简单的配置完成消息分发、消息同步、跨地域消息备份、跨产品消息同步等能力。具有操作维护简单、成本低、效率高、使用稳定等优点。同时,使用EventBridge可以实现基本的数据过滤、数据脱敏等数据处理能力。是消息路由场景下运维成本最低的解决方案。
原文链接:301永久移动
本文为阿里云原创内容,未经允许不得转载。