28

所以我一直试图了解消息队列和消息代理之间有什么区别,以及为什么要使用其中一个。

所以据我了解。MESSAGE QUEUE 有助于进程间通信,但它基本上仅限于允许 2 个应用程序之间的通信?我问这个是因为例如 MSMQ(如果我的理解是正确的)只将消息存储在队列中,直到它被第一个消费者处理,之后它会自动将其从队列中删除。它是否正确 ?

现在 MESSAGE BROKERS 是 MESSAGE QUEUE 的某种扩展?因为它们提供了一种发布者-订阅者(S)关系的机制,就像观察者所做的那样?

我的理解正确吗?如果是这样,两者之间还有其他区别吗?另外,为什么要在消息代理上使用消息队列,因为您很可能会使用分布式系统,该系统肯定会由多个服务组成。

谢谢。

4

2 回答 2

29

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

于 2018-04-28T14:49:52.230 回答
11

消息代理(也称为服务总线)是一个中间件,负责消息的持久化和路由,同时允许您将系统解耦为更小的部分。消息队列是消息代理的一部分,只是一种持久性机制。

于 2020-08-01T14:13:54.183 回答