Prendi in considerazione l'utilizzo del plugin rabbitmq / rabbitmq-autocluster :
Un plug-in RabbitMQ che raggruppa automaticamente i nodi utilizzando una serie di meccanismi di rilevazione peer:
- Console ,
- etcd2
- Record DNS A.
- Tag AWS EC2
- Gruppi di scalabilità automatica AWS
C'è un bel po 'di configurazione da collegare per ottenere questa impostazione, inclusa l'impostazione dei criteri IAM e l'aggiunta di tag EC2 alle istanze che si desidera far parte del cluster.
Se dovessi utilizzare i gruppi di scalabilità automatica AWS, aggiungere quanto segue al tuo rabbitmq.config
:
[
{rabbit, [ ... ]},
{autocluster, [
{backend, aws},
{aws_autoscaling, true},
{aws_ec2_region, "us-west-2"}
]}
].
Se non stai utilizzando i gruppi di scalabilità automatica AWS, puoi comunque ottenere il risultato desiderato usando i tag sulle tue istanze 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, "..."}
]}
].
Detto questo, consiglio vivamente di utilizzare Consul by HashiCorp come meccanismo di individuazione del servizio, a lungo termine, otterrete una flessibilità significativamente maggiore in termini di disaccoppiamento tra le parti del sistema.