Architecture 消息队列和消息代理的差异

Architecture 消息队列和消息代理的差异,architecture,message-queue,distributed-system,messagebroker,Architecture,Message Queue,Distributed System,Messagebroker,因此,我一直在试图理解消息队列和消息代理之间的区别,以及为什么应该使用一个而不是另一个 据我所知。消息队列有助于进程间通信,但它基本上只允许两个应用程序之间的通信?我这样问是因为,例如,MSMQ(如果我的理解是正确的)只会将消息存储在队列中,直到第一个使用者对其进行处理,然后它会自动将其从队列中删除。这是正确的吗 现在消息代理是消息队列的某种扩展?因为它们提供了发布者-订阅者(S)关系的机制,就像观察者那样 我的理解正确吗?如果是的话,这两者之间还有什么区别吗?另外,既然您最有可能使用分布式系统

因此,我一直在试图理解消息队列和消息代理之间的区别,以及为什么应该使用一个而不是另一个

据我所知。消息队列有助于进程间通信,但它基本上只允许两个应用程序之间的通信?我这样问是因为,例如,MSMQ(如果我的理解是正确的)只会将消息存储在队列中,直到第一个使用者对其进行处理,然后它会自动将其从队列中删除。这是正确的吗

现在消息代理是消息队列的某种扩展?因为它们提供了发布者-订阅者(S)关系的机制,就像观察者那样

我的理解正确吗?如果是的话,这两者之间还有什么区别吗?另外,既然您最有可能使用分布式系统,而分布式系统肯定是由多个服务组成的,那么您为什么要在消息代理上使用消息队列呢


谢谢。

消息队列是一种数据结构或容器,用于保存消息以供最终使用。 消息代理是管理队列的独立组件。

消息代理(也称为服务总线)是一种中间件,负责消息的持久化和路由,同时允许您将系统解耦为更小的部分。 消息队列是消息代理的简单组成部分,顾名思义,它基于类似队列的数据结构(FIFO)