Considere usar el complemento rabbitmq / rabbitmq-autocluster :
Un complemento RabbitMQ que agrupa nodos automáticamente usando una serie de mecanismos de descubrimiento de pares:
- cónsul ,
- etcd2
- Registros DNS A
- Etiquetas de AWS EC2
- Grupos de escalado automático de AWS
Hay un poco de configuración para conectar para obtener esta configuración, incluida la configuración de políticas de IAM y la adición de etiquetas EC2 a las instancias en las que desea ser parte de su clúster.
Si usara AWS Autoscaling Groups entonces agregaría lo siguiente a su rabbitmq.config
:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_autoscaling, true},
{aws_ec2_region, "us-west-2"}
]}
].
Si no está utilizando AWS Autoscaling Groups, aún puede lograr el resultado deseado utilizando etiquetas en sus instancias 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, "..."}
]}
].
Dicho todo esto, recomiendo utilizar Consul de HashiCorp como su mecanismo de descubrimiento de servicios, a la larga, obtendrá una flexibilidad significativamente mayor en términos de desacoplamiento de sus partes del sistema.