Mam do czynienia z problemem, który łączy sieć ActiveMQ.Problem podczas przesyłania wiadomości przez sieć activeMQ
Mam dwa scenariusze:
S1: Moja aplikacja jest podłączony do pierwszego ActiveMQ "A". A to activeMQ "A" jest połączone z ActiveMQ "B" - Jest to scenariusz, który powoduje pewne problemy. S2: Moja aplikacja jest bezpośrednio połączona z ActiveMQ "B".
W obu przypadkach wysyłamy dane do tej samej kolejki i oczywiście wysyłamy dokładnie te same dane. Co jest oczekiwane: gdy ActiveMQ "B" odbierze dane, powinien odpowiedzieć na tę samą kolejkę.
W scenariuszu S1 dane są wysyłane przez moją aplikację do ActiveMQ "A", a następnie przekazywane do ActiveMQ "B", ale ta ActiveMQ "B" nie wydaje się odpowiadać, faktem jest ActiveMQ "A" nie nie otrzymuje danych z ActiveMQ "B". To jest mój główny problem i nie mogę zrozumieć, dlaczego to nie działa, ponieważ jeśli podłączę moją aplikację bezpośrednio do ActiveMQ "B", otrzymam dane.
Spróbowałem stworzyć prosty schemat wyjaśniający S1 i S2.
Czy ktoś już napotkał tego rodzaju problem? Gdzie powinienem zaglądnąć, aby znaleźć przyczynę problemu?
EDIT: Niektóre więcej szczegółów:
W ActiveMQ "A" Widzę istnieją konsumenci (kolumna "Ilość konsumenta" jest równa 5) Jednakże w ActiveMQ "B" nie nie są konsumentami (kolumna "Liczba konsumentów" wynosi 0), podczas gdy powinna wynosić 5 jak w aktywnym MQ "A". Jakieś pomysły ?
Czy możesz opracować w swoim scenariuszu S1, co dokładnie ma robić ActiveMQ B? Czy inny konsument odpytuje serwer B i wysyła odpowiedź? – Adonis
Osobiście spotkałem się z podobną sytuacją, ale twoja sprawa może być inna. Jeśli używasz osobnej kolejki dla każdego konsumenta, zerwana komunikacja może być spowodowana kolejką blokującą, która ma wiele oczekujących wiadomości dla określonego klienta. Sprawdź kolejkę i spróbuj oczyścić. – YuVi