【问题标题】:Message queue and Message broker differences消息队列和消息代理的区别
【发布时间】:2018-10-08 06:30:41
【问题描述】:

所以我一直在尝试了解消息队列和消息代理之间的区别以及为什么要使用其中一个而不是另一个。

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

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

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

谢谢。

【问题讨论】:

  • 请在您的请求中添加更多详细信息。如果与确切的软件产品没有任何关系,这些词是毫无意义的。从技术上讲,这些是同一系统的一部分,其中“队列”或“总线”是存储和使用数据片段的地方。这可能是某种数据库中的地址。代理是此类系统中的代理,处理各种方面,例如数据访问、数据格式配置、路由规则、触发器等。大多数时候代理是消息服务器。消息队列也可以作为IPC编程接口的一部分。

标签: architecture message-queue distributed-system messagebroker


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 2013-11-05
      • 2014-05-07
      • 2016-01-27
      • 2022-10-05
      • 2015-10-23
      • 2011-12-09
      • 2019-12-12
      • 2012-10-11
      相关资源
      最近更新 更多