6

Hi utworzyć trzy serwery RabbitMQ działających w klastrze na EC2Jak dystrybuować ładunki w klastrze RabbitMQ?

chcę skalować RabbitMQ bazę klastra na wykorzystanie procesora ale kiedy opublikować wiadomość tylko jeden serwer wykorzystuje CPU i inne RabbitMQ-serwer nie wykorzystują CPU

więc w jaki sposób mogę dystrybuować obciążenie przez klastry RabbitMQ

Odpowiedz

9

Klastry RabbitMQ zostały zaprojektowane w celu zwiększenia skalowalności, ale system nie jest w pełni automatyczny.

Kiedy deklarujesz kolejkę na węźle w klastrze, kolejka jest tworzony tylko na jednym węźle. Tak więc, jeśli masz jedną kolejkę, niezależnie od tego, który węzeł zostanie opublikowany, wiadomość trafi do węzła, w którym znajduje się kolejka.

Aby prawidłowo korzystać z klastrów RabbitMQ, trzeba upewnić się, wykonaj następujące rzeczy:

  • mają wiele kolejek rozproszonych węzłów tak, że praca jest rozprowadzany dość równomiernie,
  • podłączyć klientów do różne węzły (w przeciwnym razie możesz zakończyć wszystkie komunikaty za pośrednictwem jednego węzła) i, jeśli możesz, spróbuj połączyć wydawcy/klientów z węzłem, który przechowuje kolejkę, której używają (w celu zminimalizowania transferu wiadomości wewnątrz klastra).

Alternatywnie, spójrz na High Availability Queues. Są jak normalne kolejki, ale zawartość kolejki jest odbijana przez kilka węzłów. Tak więc, w twoim przypadku, publikujesz do jednego węzła, RabbitMQ będzie odzwierciedlał publikacje do drugiego węzła, a konsumenci będą mogli połączyć się z dowolnym węzłem bez obawy o zburzenie klastra za pomocą przelewów wewnętrznych.

+0

Witaj, scvalex. for "mają wiele kolejek rozmieszczonych w węzłach, tak że praca jest rozkładana nieco równomiernie", czy konieczne jest dodanie serwera linuksowego do uruchomienia programu równoważenia obciążenia w celu rozwiązania programu? Lub trzeba zmienić kod źródłowy aplikacji, aby dodać "rabbitmq" wszystkie informacje o nazwach węzłów do programu dla równowagi obciążenia? –

+1

Powiedziałbym "zmień kod źródłowy aplikacji, aby dodać" rabbitmq "wszystkie informacje o nazwach węzłów do programu dla równowagi obciążenia", ale są też ludzie, którzy z powodzeniem używali mechanizmów równoważenia obciążenia. – scvalex

+0

Zanim znajdę post, myślę, że rabbitmq jest bardzo potężny. Ale po tym, myślę, że nie jest to automatyczne, jak powiedziałeś. Nie jest to łatwe w użyciu. –

Powiązane problemy