Estoy planeando crear el clúster RabbitMQ usando Ansible en AWS VPC con el equilibrador de carga interno de Amazon como la interfaz para apuntar conexiones a él.
¿Alguna sugerencia de cómo eliminar un nodo muerto del clúster RabbitMQ basado en la regla de autoescalado donde los nodos pueden subir y bajar, o si está utilizando instancias puntuales?
Cuando un nodo cae, RabbitMQ no lo elimina de la lista de replicación automáticamente, puedo verlo Node not running
en la IU de administración.
Logré unir al clúster una instancia escalada automáticamente a través de Ansible y userdata.
amazon-web-services
ansible
rabbitmq
Berlina
fuente
fuente
Respuestas:
Considere usar el complemento rabbitmq / rabbitmq-autocluster :
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
:Si no está utilizando AWS Autoscaling Groups, aún puede lograr el resultado deseado utilizando etiquetas en sus instancias EC2:
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.
fuente
rabbitmq/rabbitmq-autocluster plugin
también sabrá eliminar el nodo de la lista de replicación una vez que el nodo esté inactivo, una cosa más si puedo preguntar, pensé comenzar con el2-node
clúster, ¿me sugiere comenzar con el3-node
clúster? como usted describe en su diagrama con la política `rabbitmqctl set_policy ha-all" "'{" ha-mode ":" all "," ha-sync-mode ":" automatic "}'`? o debería publicarlo en otra pregunta?rabbitmq/rabbitmq-autocluster plugin
y funciona bastante bien, sin embargo, cuando el nodo se cae, RabbitMQ no lo elimina de la lista de replicación, ¿alguna idea de por qué?https://github.com/aweber/rabbitmq-autocluster/wiki/General-Settings
, lo intentaré.