Рассмотрите возможность использования плагина rabbitmq / rabbitmq-autocluster :
Плагин RabbitMQ, который автоматически кластеризует узлы с использованием ряда механизмов обнаружения одноранговых узлов:
- Консул ,
- etcd2
- DNS A записи
- Теги AWS EC2
- Группы автоматического масштабирования AWS
Существует справедливый бит конфигурации для подключения , чтобы получить эту настройку , включая настройки политик IAM и добавление тегов EC2 в случаях , которые вы хотите быть участником в кластер.
Если бы вы использовали AWS Autoscaling Groups, вы бы добавили следующее rabbitmq.config
:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_autoscaling, true},
{aws_ec2_region, "us-west-2"}
]}
].
Если вы не используете AWS Autoscaling Groups, вы все равно можете достичь желаемого результата, используя теги на ваших экземплярах EC2:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_ec2_tags, [{"region", "us-west-2"}, {"service", "rabbitmq"}]},
{aws_ec2_region, "us-east-1"},
{aws_access_key, "..."},
{aws_secret_key, "..."}
]}
].
Учитывая все вышесказанное, я настоятельно рекомендую использовать Consul by HashiCorp в качестве механизма обнаружения служб, и в долгосрочной перспективе вы получите значительно большую гибкость в плане отделения ваших частей системы друг от друга.