Planuję utworzyć klaster RabbitMQ za pomocą Ansible na AWS VPC z wewnętrznym modułem równoważenia obciążenia Amazon jako interfejsem do połączenia z nim punktów.
Wszelkie sugestie, jak usunąć martwy węzeł z klastra RabbitMQ w oparciu o regułę automatycznego skalowania, w której węzły mogą przesuwać się w górę lub w dół, lub jeśli używasz wystąpień punktowych?
Kiedy węzeł przestaje działać, RabbitMQ nie usuwa go automatycznie z listy replikacji, co widać Node not running
w interfejsie zarządzania.
Udało mi się automatycznie dołączyć do klastra skalowane wystąpienie za pośrednictwem Ansible i danych użytkownika.
amazon-web-services
ansible
rabbitmq
Berlin
źródło
źródło
Odpowiedzi:
Rozważ użycie wtyczki rabbitmq / rabbitmq-autocluster :
Aby uzyskać tę konfigurację, istnieje sporo konfiguracji, w tym ustawianie zasad IAM i dodawanie znaczników EC2 do instancji, które chcesz być członkiem klastra.
Jeśli miałbyś korzystać z Autoskalowania grup AWS, dodałbyś do swojego
rabbitmq.config
:Jeśli nie korzystasz z grup skalowania AWS, nadal możesz osiągnąć pożądany wynik za pomocą znaczników w instancjach EC2:
Biorąc to wszystko pod uwagę, zdecydowanie zalecam używanie Consul by HashiCorp jako mechanizmu wykrywania usług, na dłuższą metę zyskujesz znacznie większą elastyczność, jeśli chodzi o oddzielenie części systemu od siebie.
źródło
rabbitmq/rabbitmq-autocluster plugin
będzie wiedział również, aby usunąć węzeł z listy replikacji, gdy węzeł nie działa, jeszcze jedno, jeśli mogę zapytać, pomyślałem, aby zacząć od2-node
klastra, czy sugerujesz zacząć od3-node
klastra jak opisano na schemacie za pomocą zasady `rabbitmqctl set_policy ha-all" "{{ha-mode": "all", "ha-sync-mode": "automatic"} ''? czy powinienem opublikować to w innym pytaniu?rabbitmq/rabbitmq-autocluster plugin
i działa całkiem nieźle, jednak gdy węzeł nie działa RabbitMQ nie usuwa go z listy replikacji, wiesz, dlaczego?https://github.com/aweber/rabbitmq-autocluster/wiki/General-Settings
, spróbuję tego.