RabbitMQ将ack返回给请求者

时间:2016-12-29 14:58:33

标签: javascript node.js queue rabbitmq

我有一个获取http请求的服务,并将请求数据传递给另一个服务。这个另一个服务将消息发布到队列,当队列由队列消费者提取时,我想返回ack,并将其发送回请求的服务器,以便将其发送到另一个处理步骤(而不是队列)。我是否需要另一个队列才能跟踪已处理的消息并在请求服务器中使用它?

寻求: Server1-> queue1-> server1(queue1结果) - > queue2 ...

谢谢:)

1 个答案:

答案 0 :(得分:0)

不一定,但我认为这需要另一个明确的沟通渠道。

这项工作的性质是什么?吞吐量是多少?什么是性能配置文件?它会稳定吗?突发性的?

我可以想象:

基于队列的确认

- (HTTP)>服务1 - >另一项服务 - (messagequeue)>消费者

消费者 - (消息队列)>服务1

这应该允许异步处理,服务1也可以是消费者并且将等待ACK消息

基于HTTP的确认

通过将消息放入消息队列而不是让消费者确认消息,它可以直接ping service1。

我更喜欢选项一,因为它具有异步消息传递架构的所有好处:

  • 消费者和服务1解耦
  • 异步处理