2016-12-29 4 views
0

У меня есть служба, которая получает http-запросы и передает данные запроса другой службе. Эта другая служба публикует сообщения в очереди, и когда очередь вытягивается потребителем очереди, я хочу вернуть ack и отправить его обратно на запрошенный сервер, чтобы отправить его на другой этап обработки (а не в очередь). Нужно ли иметь очередную очередь, чтобы отслеживать обработанные сообщения и потреблять их на сервере запросов?RabbitMQ return ack для реквестера

Требуются: Server1-> queue1-> сервер1 (queue1 результат) -> queue2 ...

Спасибо :)

ответ

0

Не обязательно, но я думаю, что потребуется еще один явный канал связи.

Какова природа работы? Какова пропускная способность? Каков профиль производительности? Будет ли оно устойчивым? пакетный?

я мог себе представить:

очереди на основе извед

- (HTTP)> Service1 -> Еще одна услуга - (MessageQueue)> потребитель

потребитель - (MessageQueue)> Service1

Это должно обеспечить обработку асинхронного обслуживания, услуга 1 также будет потребителем и будет ждать сообщений ACK

HTTP-based ack

Вместо того, чтобы иметь потребительский ответ, помещая сообщения в очередь сообщений, он может напрямую выполнить ping service1.


Я DEF предпочитаю первый вариант, поскольку он имеет все преимущества сообщения асинхронных проходящую архитектуру:

  • потребители и обслуживание 1 развязан
  • обработка асинхронной
+0

Привет :) Мне это нужно: (http) -> server1-> server2-> queue1-> server2-> queue2-> server2-> queue3 и т. д. – user3712353