【发布时间】:2016-07-30 01:39:38
【问题描述】:
我有一个用 Ruby 编写的应用程序,它有多个线程,每个线程都向远程 AMQP 端点发送请求。当必须运行新任务时,这些线程会不时产生。
如果我为每个线程使用临时的、独占的队列来发送对其请求的响应,那么编写代码来处理此 Ruby 服务中的传入消息将变得很容易。一旦相关通道关闭,队列就会被删除,这样它们就不会在其目的结束后留下来。
我能想到的所有替代方案都需要一个侦听器线程侦听一个或多个队列,这些队列将所有传入消息/响应接收到 Ruby 服务中,然后使用一些消息标识符将这些消息路由到等待线程。这似乎更复杂,我无法使用 RabbitMQ 进行所有必需的语义路由。
第一个模型是 AMQP 通信的可行模型吗?有没有更好的模式来处理这种情况?
【问题讨论】: