2015-08-11 3 views
1

Я использую плавучий плагин RabbitMQ (динамическая лопата, см. Ниже), чтобы обеспечить однонаправленную передачу сообщений между двумя брокерами RabbitMQ по ненадежной линии WAN. Я вижу регулярные потери связи в журнале сервера RabbitMQ.Поддерживает ли заказчик плагинов RabbitMQ сообщение?

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

Наблюдаемое поведение, по-видимому, указывает на то, что это не так, возможно, из-за повторных передач и т. Д. Поддерживает ли плагин RabbitMQ швагу сообщение без потери сообщения? Каковы требуемые параметры конфигурации?

shovel declaration

+0

Если у вас есть ссылка, то она должна сохранять порядок. С несколькими ссылками, скорее всего, не –

ответ

1

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

"prefetch-count" : 1 
"ack-mode"  : "on-confirm" 

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

ack-mode Определяет, как лопата должна распознавать сообщения. Если установлено значение on-confirm (по умолчанию), сообщения подтверждаются исходному брокеру после того, как они были подтверждены адресатом. Это устраняет ошибки сети и ошибки брокера, не теряя сообщений, и является самым медленным вариантом. Если установлено значение on-publish, сообщения будут отправлены исходному брокеру после того, как они будут опубликованы в пункте назначения. Это устраняет сетевые ошибки, не теряя сообщений, но может потерять сообщения в случае сбоев брокера. Если установлено значение no-ack, подтверждения сообщений не используются. Это самый быстрый вариант, но может потерять сообщения в случае сбоев сети или брокера.

Для получения дополнительной информации, связанной с RabbitMQ в лопатой механизм, пожалуйста, обратитесь к официальной документации: https://www.rabbitmq.com/shovel-dynamic.html

+1

Это, безусловно, лучшее, что вы можете получить. Но не следует ожидать, что сообщения RabbitMQ всегда будут идеально упорядочены в любом случае. RabbitMQ дает только сильные гарантии заказов в очень специфических условиях. Более подробная информация об этом содержится на странице документации RabbitMQ [Semantics] (https://www.rabbitmq.com/semantics.html); найдите раздел 'Гарантии заказа сообщений '. – user1527491