Есть ли способ передачи данных со 100% гарантией доставки с использованием RabbitMQ? - PullRequest
0 голосов
/ 03 сентября 2018

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

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

Вариант использования поддерживает конечную согласованность между двумя системами

Я бы также хотел избежать какого-либо состояния, касающегося сообщений в моем приложении.

Я знаю, что публикация постоянного сообщения не дает 100% гарантии того, что оно было сохранено на диске, потому что fsync (2) вызывается не для каждого сообщения.

Таким образом, мой вопрос - Могу ли я использовать RabbitMQ в качестве 100% надежного * механизма передачи сообщений?

Я читал о транзакциях, но не смог найти ничего, кроме 2011 blogpost , в котором также явно не указано, что fsync(2) выполняется для каждого сообщения или что (синхронно) сбой происходит, если это не удается.

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

1 Ответ

0 голосов
/ 04 сентября 2018

Могу ли я использовать RabbitMQ в качестве 100% надежного механизма передачи сообщений?

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

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


ПРИМЕЧАНИЕ: команда RabbitMQ отслеживает список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...