Service 消息队列和应用程序结构

Service 消息队列和应用程序结构,service,rabbitmq,message-queue,soa,amqp,Service,Rabbitmq,Message Queue,Soa,Amqp,我已经阅读了文档,我非常确定我理解了基于AMQP的消息队列中不同组件的概念。然而,我很难将其映射到实际的面向服务的实现。有人能举一个“教科书式”的例子,说明两种服务通过路径进行通信: Producer->Exchange->Binding->Queue->Consumer 具体来说,我很好奇什么时候重用队列或声明新队列。“hello world”教科书中的命名约定在大多数系统中用于交换名称之类的事情,这将是非常棒的,因为这让我相当慌乱 队列是等待完成的大量工作。如果您只有一个工作单元要完成,那么

我已经阅读了文档,我非常确定我理解了基于AMQP的消息队列中不同组件的概念。然而,我很难将其映射到实际的面向服务的实现。有人能举一个“教科书式”的例子,说明两种服务通过路径进行通信:

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


具体来说,我很好奇什么时候重用队列或声明新队列。“hello world”教科书中的命名约定在大多数系统中用于交换名称之类的事情,这将是非常棒的,因为这让我相当慌乱

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

exchange上有多个队列的原因是,您需要对同一数据执行不同的工作。例如:假设您收到一条传入消息,并希望:

  • 将数据写入数据库
  • 发送电子邮件
  • 您可以通过创建一个带有2个队列的扇出交换来实现这一点。然后,您有两个工作桶,可以由两个不同的消费者完成。将其分离的优点是:

  • 每个队列可以有N个使用者
  • 每个队列都有一个更小、更集中的作业
  • 有很多方法可以使用兔子。希望这是有帮助的

    签出RabbitMQ入门指南