2016-12-19 4 views
1

Мы планируем использовать RabbitMq для нашей службы обмена сообщениями, мы опубликуем все запросы сообщений в прочную очередь RabbitMq.Как обрабатывать неудавшиеся публикации с помощью RabbitMq?

Для клиента .Net мы решили использовать EasyNetQ, поэтому вопрос заключается в том, как мы должны обрабатывать, если сервер RabbitMq не работает при публикации сообщения?

-Можно ли исключить и сохранить сообщение в базе данных и повторно опубликовать с запланированной работой?

-Мы используем автоматический выключатель?

-или что еще? Я хотел бы услышать ваши впечатления.

ответ

3

В общем, если вы хотите быть уверены в публикации, вы можете использовать publish confirmation.

Как вы можете прочитать, вы можете сделать это с помощью транзакций или с помощью ConfirmListener.

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

Примечание: Я не знаю, как работает EasyNetQ, но родной публиковать асинхронный, так ловушку публиковать исключения недостаточно. Вот почему вы должны использовать подтверждение публикации, чтобы справиться с этим.

Смежные вопросы