架构模式-事件驱动架构-代理者拓扑

简介: 架构模式 事件驱动架构 代理者拓扑 broker topology

今天我们来看下代理者拓扑(Broker Toplogy)。

 

 代理者拓扑和调度者拓扑的不同点在于:代理者拓扑没有中心化的事件调度者;相反,消息流是通过轻量级的消息代理将消息分布到消息处理器组件中。当你有一个简单的事件处理流程,但是你不想或者不需要一个中心化的事件编排时,代理者拓扑将会大有用处。

 

 代理者拓扑有两个主要架构组件:代理者组件和事件处理器组件。代理者组件可以是中心化的,也可以是非中心化的,包含所有事件流需要使用的事件通道。代理者组件中的事件通道可以是消息队列,消息主题,或者是两者的结合。


 1.png


 

上图为代理者拓扑的图示。从上图中可以看出,没有中心化的事件调度者组件控制与编排初始化事件;而是每个事件处理器负责处理事件,并且发布一个新的事件来表示自己刚执行的动作。例如:一个平衡股票组合事件处理器收到了一个股票分割初始化事件。基于这个初始化事件,平衡股票组合事件处理器可能会重整投资平衡,然后发布一个重整投资平衡的新事件到代理者,然后其他的事件处理器可能会获取到这个新事件,执行自己的事件处理器。注意:可能事件处理器发布的新事件没有任何一个其他的事件处理器会接收到(可能是为了应用程序未来需要提供的功能或者扩展)。

 

 

为了举例说明代理者拓扑如何工作的,我们来举一个和调度者拓扑一样的例子(保险搬家)。由于没有中心化的事件调度者来接收初始化事件,用户处理组件则直接接收事件,改变用户的地址,并发送一个新事件:用户的新地址(例如改变地址事件)。在这个例子中,有两个事件处理器对修改地址事件感兴趣:价格处理和理赔处理。价格处理器组件根据新地址来计算赔率,并发布一个新事件(例如:重新计算价格事件)。理赔处理组件收到相同的地址修改事件,然后他跟新一个未赔付的保险索赔,并发布一个新事件:更新索赔事件。这些新事件由其他事件处理器组件接收,且事件链会持续直到没有新的事件发布。

   

2.png


图代理者拓扑示例

 

从上图可以看出,代理者拓扑是一个基于事件链来进行业务操作功能的。理解代理者拓扑最好的方式是把它想象成一个接力赛。在接力赛中,跑步的人手持一个接力棒,然后奔跑一段距离,然后将接力棒传递给下一棒的接力者,一直持续直到最后一个人到达终点线。对于代理者拓扑来讲:一旦这个事件处理器将事件处理完毕,那么这个处理器将不再设计这条事件的任何处理了。

 

 

 

 

以上即事件驱动架构代理者拓扑,下篇看一下事件驱动架构分析方面。


目录
相关文章
|
1月前
|
消息中间件 监控 测试技术
事件驱动架构是一种编程范式
【10月更文挑战第7天】事件驱动架构是一种编程范式
106 65
|
30天前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
1月前
|
存储 设计模式 监控
事件驱动架构的实现方式?
【10月更文挑战第7天】事件驱动架构的实现方式?
41 7
|
13天前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
22 0
|
1月前
|
消息中间件 运维 数据库
架构设计之解析CQRS架构模式!
架构设计之解析CQRS架构模式!
架构设计之解析CQRS架构模式!
|
1月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
20 2
|
2月前
|
设计模式 开发框架 前端开发
在开发框架中实现事件驱动架构
【9月更文挑战第2天】事件驱动架构(EDA)通过事件机制让组件间解耦交互,适用于动态扩展和高响应性的系统。本文提供一个基于Beego框架实现事件驱动的示例,通过事件管理器注册和触发事件,实现用户注册和登录时的不同处理逻辑,展示了其在Web应用中的灵活性和高效性。
82 5
|
5天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
3天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
4天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
14 1
服务架构的演进:从单体到微服务的探索之旅