我想做的是一个 Map/Reduce 系统,它使用 RabbitMQ 作为往返于工作代理的传输,这是为了允许一个简单的扩展路线图,但也允许一个用于开发和测试的服务器实现。
我已经看过一些关于使用 RPC 和 RabbitMQ 超时的单条消息的文章,但这些似乎是阻塞的。我需要能够触发一批请求,每个请求都可能由不同的代理服务。然后,我需要能够整理所有的回复,这样我才能得到一个单一的答案。
如果我要使用 RPC,我相信我最终会得到一个非常复杂的任务串行处理,而不是并行处理。
我还希望能够在某些情况下重新发送请求(例如代理报告暂时错误),但这不是必需的。
我猜我将需要在主应用程序中生成线程,并且每个线程都有一个 RPC 调用,但由于它是一个 Web 应用程序,并且可能有 20 个任务由代理服务,我不热衷于这种方法,并怀疑它很快就会成为瓶颈。