51

消息总线[1]和消息代理[2]有什么区别

  • 两者都是应用程序的中间件
  • 两者都可以用来解耦各种系统
  • 两者都可以有一个规范的数据模型
  • 既可以路由消息,又可以提供其他功能,例如数据转换

如我所见,唯一相关的区别是用于代表每个人的图片。

如果两者之间有一些区别,请告诉我什么。
如果它们相同,请告诉我为什么两个概念引用相同的功能。

谢谢。

[1] http://www.eaipatterns.com/MessageBus.html
[2] http://www.eaipatterns.com/MessageBroker.html

4

4 回答 4

36

消息总线意味着所有参与者都说和理解的通用协议。公共汽车几乎没有逻辑。通常消息会转发到所有连接的系统。

轴辐式架构(或“消息代理”)有一个中央软件,它理解发送给它的消息,可以翻译它们,并将它们转发到需要信息的系统。

于 2010-06-29T22:00:08.050 回答
6

首先认识到这些是从现有隐喻中采用的虚构术语,就像大多数特定领域的术语一样。没有人有权定义它们,而我们只是随着我们(行业)的发展而编造这些东西。

经纪人隐喻与轮辐式布局很好地配合。总线隐喻在直接寻址的情况下效果更好。是什么阻止您的客户向坐在公共汽车、轮辐式或其他方式上的众多经纪人之一发送消息?隐喻的定义开始变得有点愚蠢。

弄清楚你想做什么,然后选择一个做得最好的产品——提示:它可能会提供所谓的总线或代理技术的特性。

于 2017-01-15T20:00:03.797 回答
2

关于消息代理和企业服务总线之间差异的 mulesoft 很好的解释 -

https://www.mulesoft.com/resources/esb/enterprise-application-integration-eai-and-esb

引用文章:“企业总线:......虽然它(即消息代理)仍被用作中央路由组件在系统之间传递消息,但总线架构试图通过以下方式减轻单个组件上的功能负担将一些集成任务分发到网络的其他部分。

然后可以通过配置文件将这些组件分组到各种配置中,以尽可能最有效的方式处理任何集成场景,并且可以托管在基础架构内的任何位置,或者复制以实现跨大地理区域的可扩展性。”

于 2016-08-20T23:22:35.250 回答
0

根据 Udi Dahan 的课程(发明 NServiceBus 的人):“.. 总线架构风格 [is] 正交于代理架构风格。经纪人往往更符合 [技术] 系统边界 [一个系统是一个团队构建的 iOS 移动应用程序,另一个系统是另一个团队构建的 Java 后端,..]。服务和总线架构风格与许多系统的构建方式是正交的/横切的”。(现在,您经常由一个团队遵循 DDD 构建特定服务。服务提供特定有界上下文的业务能力,例如,可以由 iOS 应用程序或后端使用的支付服务)。

https://learn.particular.net/courses/take/DDDEU-explorers-offer/lessons/9737385-services-modelling-workflows-boundaries-and-business-capabilities

于 2021-05-19T09:57:00.830 回答