Dla firmy, w której pracuję, chcielibyśmy wykorzystać RabbitMQ jako nasz główny autobus komunikacyjny. Pomysł polega na tym, że każda aplikacja używa własnego vhosta do komunikacji wewnętrznej, a dzięki wtyczce typu "szufelka" lub "federacja" umożliwiamy udostępnianie określonego typu zdarzeń w wielu vhostach (może nawet w wielu komputerach (nieklastrowych)) . Wybraliśmy dla aplikacji na vhost, aby oddzielić komunikację wewnętrzną od wydarzeń publicznych i zachować bezpieczeństwo regulowane dla każdej aplikacji.Kiedy używać łopatek RabbitMQ i kiedy wtyczka Federation?
Na podstawie informacji opublikowanych na stronie internetowej RabbitMQ nie dostaję go, gdy mam do wyboru łopaty lub gdy muszę wybrać wtyczkę federacyjną.
RabbitMQ posiada następujące explanation kiedy używać co:
Zazwyczaj należy użyć łopatę połączyć brokerów w internecie, gdy trzeba więcej kontroli niż federacja przewiduje.
Co to jest kontrola drobnego ziarna w łopatach, których mi brakuje, gdy wybieram dla federacji?
W tym momencie myślę, że wolałbym wtyczkę federacyjną, ponieważ mógłbym zautomatyzować komunikację między-vhost za pośrednictwem interfejsu API REST zapewnionego przez wtyczkę federacyjną. W przypadku łopaty musiałbym zmienić konfigurację łopaty i zrestartować instancję RabbitMQ za każdym razem, gdy chcielibyśmy udostępnić zdarzenie między vhostami. Czy moje myśli są poprawne?
Obecnie uruchamiamy RMQ w systemie Windows z klientami łączącymi się z .NET. W najbliższej przyszłości dołączą klienci Java/Perl/PHP.
Podsumowując moje pytania:
- Co jest w porządku kontrola ziarno w łopaty, które mi brakuje kiedy
wybrać dla federacji? - Czy to prawda, że jedynym sposobem zmiany komunikacji wewnątrz-vhostowej podczas korzystania z szufli jest zmiana pliku konfiguracyjnego i ponowne uruchomienie instancji?
- Czy konfiguracja (vhost dla aplikacji) ma sens, czy całkowicie brakuje mi punktu?
RabbitMQ obsługuje teraz "dynamiczne koparki", które nie wymagają ponownego uruchomienia: http://www.rabbitmq.com/shovel.html –