消息总线和消息代理之间的区别

时间:2010-06-29 21:13:23

标签: routing integration messaging eai

消息总线[1]和消息代理[2]

之间的区别是什么
  • 两者都是应用程序的中间件
  • 两者都可用于解耦各种系统
  • 两者都可以拥有规范数据模型
  • 两条路由消息都可以提供其他功能,例如数据转换

正如我所见,唯一相关的差异是用来代表每一个的图片。

如果之间存在一些差异,请告诉我什么 如果它们是相同的,请告诉我为什么两个概念引用相同的功能。

感谢。

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

4 个答案:

答案 0 :(得分:17)

消息总线意味着所有参与者都能说出并理解的通用协议。总线上几乎没有逻辑。通常,邮件会转发到所有连接的系统。

hub-and-spoke体系结构(或“消息代理”)有一个中心软件,可以理解发送给它的消息,可以翻译它们,并将它们转发到需要信息的系统。

答案 1 :(得分:1)

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

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

引用文章:“企业总线:......虽然它(即Message Broker)仍然使用中央路由组件将消息从系统传递到系统,但总线架构试图减轻功能负担。单个组件,通过将一些集成任务分发到网络的其他部分。

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

答案 2 :(得分:0)

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

经纪人的隐喻与中心辐射布局很好地协作。总线隐喻在直接寻址情况下工作得更好。什么阻止您的客户向坐在公交车,轮辐或其他方面的众多经纪人之一发送消息?隐喻的定义开始变得有些愚蠢。

弄清楚你想做什么,并选择最好的产品 - 提示:它可能会提供所谓的总线或代理技术的功能。

答案 3 :(得分: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