Podejdź do automatycznego skalowania za pomocą Amazon AWS

3

Chcę wiedzieć o możliwych opcjach automatycznego skalowania mojej architektury aplikacji internetowych. To, co mam w architekcie, to aplikacja internetowa (Tomcat), oprogramowanie pośrednie (RabbitMQ), baza danych (MongoDB), pracownik (samodzielna aplikacja Java). W tej chwili próbuję skalować w oparciu o wykorzystanie procesora. Mogę automatycznie skalować moją aplikację internetową i pracownika zgodnie z oczekiwaniami, ale mam problemy ze skalowaniem rabbitmq, ponieważ nie wiem, jak przekazać ładunek do nowo utworzonego serwera rabbtimq.

Na przykład mam uruchomione 2 serwery Tomcat. Ilekroć wykorzystanie procesora przez moją instancję RabbitMQ jest większe niż 80%, AWS doda nowy serwer RabbitMQ. Ale moje serwery Tomcat nie wiedzą, że dodano nową instancję RabbitMQ, więc nadal odnoszą się tylko do oryginalnego serwera RabbitMQ, a nie do nowo utworzonego.

Co mógłbym zrobić? Czy powinienem automatycznie skalować całą architekturę, gdy wzrasta wykorzystanie procesora Rabbit? Czy też powinienem porzucić ideę automatycznego skalowania RabbitMQ i utworzyć wymagane instancje na początkowym etapie wdrażania? Czy są inne opcje?

Anand Soni
źródło

Odpowiedzi:

1

Problem polega na tym, że twoje serwery Tomcat (i najprawdopodobniej twoi pracownicy) nie wiedzą o serwerze RabbitMQ. W tym scenariuszu musisz wykonać 1 z 2 rzeczy: (a) Poinformuj ich o nowym serwerze lub (b) Spraw, aby ich to nie obchodziło

W przypadku (a) powyżej możesz powiadomić każdy serwer Tomcat i pracownika o uruchomieniu nowego serwera RabbitMQ lub umieścić informacje na liście, do której odwołują się inne komponenty.

Jednak w tym scenariuszu, zakładając, że masz kolejkę w RabbitMQ # 1, co stanie się z tą kolejką, jeśli uruchomisz RabbitMQ # 2? W tym przypadku będziesz mieć 2 kolejki, a nie jedną kolejkę obejmującą 2 serwery. Czy Twoja aplikacja to obsługuje?

W punkcie (b) powyżej możesz zapoznać się z usługą Grupowanie RabbitMQ . Rozumiem, że dzięki klastrowaniu RabbitMQ możesz mieć węzły przychodzące i odchodzące, a klienci nie powinni się tym przejmować.

Matt Houser
źródło