消息队列和应用程序结构

问题描述 投票:1回答:1

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

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

具体来说,我很好奇何时重用队列或声明新队列。 在大多数系统中,“ hello world”教科书的命名约定用于诸如交换名称之类的事情,这种约定非常好,因为这让我感到非常慌张!

service rabbitmq message-queue soa amqp
1个回答
1
投票

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

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

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

您可以通过创建具有2个队列的单个FANOUT交换来完成此任务。 然后,您有2个桶,两个不同的使用者可以完成。 分离这些的优点是:

  1. 每个队列可以有N个使用者
  2. 每个队列都有一个更小,更集中的工作

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

查看RabbitMQ入门指南。

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

© www.soinside.com 2019 - 2024. All rights reserved.