Кластер RabbitMQ с балансировщиком нагрузки

Мне нужно синхронизировать таблицы между различными базами данных. Поэтому я хочу настроить кластер RabbitMQ высокой доступности. Очень важно, чтобы ни одно сообщение не потерялось, потому что это привело бы к асинхронной таблице.

RabbitMQ кластер с LB

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

Возможные варианты:

  1. Добавьте все узлы в ваше приложение и просматривайте их, пока не найдете рабочий.
  2. Установите программный балансировщик нагрузки, такой как HAProxy, на все узлы вашего веб-сервера, чтобы преобразовать его в работающий узел RabbitMQ.

Я не чувствовал себя комфортно с обоими решениями. Может быть, у кого-то есть идея получше или у нее есть дальнейшее чтение по этой конкретной теме?

Я хочу использовать RabbitMQ с php. Не должно быть важно знать для этого вопроса, но, возможно, кто-то знает конкретный ответ PHP.

0

Решение

Это распространенная проблема.

Если балансировщик нагрузки может fail в вашем сценарии вы должны реализовать HA поведение на стороне клиента.

Большинство клиентов RabbitMQ не реализуют HA,
Например это клиент реализует HA сторона клиента.

Если вы боитесь сбоя балансировщика нагрузки, вы можете также настроить балансировщик нагрузки в HA ,

Я бы обратил внимание на настройку балансировщика нагрузки в HA,

Кстати ваш вопрос довольно общий, надеюсь, это поможет

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]