【问题标题】:Message queues and application structure消息队列和应用结构
【发布时间】:2015-02-27 18:50:29
【问题描述】:

我已阅读文档,并且很确定我了解基于 AMQP 的消息队列中存在的不同组件的概念。但是,我很难将其映射到实际的面向服务的实现。有人可以举一个“教科书”示例,说明两种服务通过路径进行通信:

Producer -> Exchange -> Binding -> Queue -> Consumer

具体来说,我很好奇何时重用队列或声明新队列。大多数系统中用于交换名称之类的“hello world”教科书命名约定会很棒,因为这让我很慌乱!

【问题讨论】:

    标签: service rabbitmq message-queue soa amqp


    【解决方案1】:

    队列是等待完成的工作桶。如果您只有 1 个工作单元要完成,那么您只需要 1 个队列。

    在一个交换器上拥有多个队列的原因是您需要对相同的数据执行不同的工作。例如:假设您收到一条传入消息并且您想要:

    1. 将数据写入数据库
    2. 发送电子邮件

    您可以通过创建具有 2 个队列的单个 FANOUT 交换来完成此操作。然后,您有 2 个工作桶可以由两个不同的消费者完成。将这些分开的好处是:

    1. 每个队列可以有 N 个消费者
    2. 每个队列都有一个更小、更专注的工作

    您可以通过多种方式使用 rabbit。希望这会有所帮助。

    查看 RabbitMQ 入门指南。

    http://www.rabbitmq.com/getstarted.html

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 2013-12-16
      • 2014-02-13
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 2013-05-16
      • 2014-04-09
      • 2020-11-27
      相关资源
      最近更新 更多