Я планирую создать кластер RabbitMQ, используя Ansible на AWS VPC с внутренним балансировщиком нагрузки Amazon в качестве интерфейса для подключения к нему.
Любое предложение, как удалить мертвый узел из кластера RabbitMQ на основе правила автомасштабирования, где узлы могут идти вверх и вниз, или если вы используете точечные экземпляры?
Когда узел выходит из строя, RabbitMQ не удаляет его из списка репликации автоматически, я вижу Node not running
в пользовательском интерфейсе управления.
Мне удалось автоматически присоединить к кластеру масштабированный экземпляр через Ansible и userdata.
Ответы:
Рассмотрите возможность использования плагина rabbitmq / rabbitmq-autocluster :
Существует справедливый бит конфигурации для подключения , чтобы получить эту настройку , включая настройки политик IAM и добавление тегов EC2 в случаях , которые вы хотите быть участником в кластер.
Если бы вы использовали AWS Autoscaling Groups, вы бы добавили следующее
rabbitmq.config
:Если вы не используете AWS Autoscaling Groups, вы все равно можете достичь желаемого результата, используя теги на ваших экземплярах EC2:
Учитывая все вышесказанное, я настоятельно рекомендую использовать Consul by HashiCorp в качестве механизма обнаружения служб, и в долгосрочной перспективе вы получите значительно большую гибкость в плане отделения ваших частей системы друг от друга.
источник
rabbitmq/rabbitmq-autocluster plugin
будет знать, как удалить узел из списка репликации, когда узел не работает, еще одна вещь, если я могу спросить, я подумал начать с2-node
кластера, вы предлагаете начать с3-node
кластера как вы описываете в своей диаграмме с политикой `rabbitmqctl set_policy ha-all" "'{" ha-mode ":" все "," ha-sync-mode ":" автоматический "}'`? или я должен опубликовать это в другом вопросе?rabbitmq/rabbitmq-autocluster plugin
его, и он работает довольно хорошо, однако, когда узел выходит из строя, RabbitMQ не удаляет его из списка репликации, есть идеи, почему?https://github.com/aweber/rabbitmq-autocluster/wiki/General-Settings
, попробую.