【问题标题】:Difference between broker and exchange经纪人和交易所的区别
【发布时间】:2016-06-01 06:58:26
【问题描述】:

我是 RabbitMQ 的新手,并试图弄清楚代理和交易所之间的区别。

根据我的阅读,这些术语似乎几乎可以互换使用,并且在图表中,代理似乎同时包含交换和队列。

来自“RabbitMQ Succinctly”一书:

Exchanges 是 AMQP 实体,其中消息被发送到消息 经纪人。交易所接收一条消息,然后将其路由到一个或多个 排队

那么什么是经纪人?在 RabbitMQ 管理中有一个“交换”选项卡,但没有经纪人。我可以直接与经纪人互动还是只能由交易所完成?

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    代理位于生产者和消费者之间。

    这里是邮局类比,用于理解基于 Rabbitmq 的消息传递系统中的组件,而无需深入细节。

    交换就像一个包裹递送员。队列是包裹的接收者。生产者是包裹的发件人。交换所遵循的将包裹(即消息)传递到队列的一组规则称为“绑定”。路由键和/或标头就像包裹上的地址。交换器根据路由键/标头确定消息进入哪个队列。生产者将消息发送到交换器,而不是队列。

    接受来自生产者的消息并将其传递给消费者的整个业务是“代理”所做的。

    Rabbitmq 是 AMQP 协议(​​应用层协议)的实现,是一个异步消息代理中间件。

    【讨论】:

      【解决方案2】:

      “Broker”是 RabbitMQ 消息系统类型的通用术语。它是一个集中式消息传递系统,具有处理消息路由和传递等的服务器。

      ZeroMQ 的这篇论文很好地理解了 brokered 和 brokerless 之间的区别:http://zeromq.org/whitepapers:brokerless(虽然这篇论文相当偏向于 brokerless 模型,但两者都很好,都有用处。我更喜欢 rabbitmq / brokered 系统,但是不总是)

      从另一个角度来看,这里是 RabbitMQ 的 broker 与 brokerless 的帖子:https://www.rabbitmq.com/blog/2010/09/22/broker-vs-brokerless/

      在大多数情况下,只要在您的脑海中替换“rabbitmq server”,当您看到“broker”这个工作时,您就可以开始了。

      正如您所提到的,在 RabbitMQ 中,您通过它发布消息的交换。它根据交换类型处理消息的绑定和路由。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-01
        • 2012-04-21
        • 1970-01-01
        • 2021-08-29
        • 2014-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多