2013-02-07 21 views
7

Poszukuję porady, jak najlepiej skonfigurować moje wymiany królików.Wymiana tematów RabbitMQ i round robin

Próbuję użyć wymiany tematów w metodologii round robin. Każdy konsument ma swoją (unikalnie) nazwaną kolejkę dołączoną do wymiany tematów. Chciałbym, aby wymiana na wiadomości typu round robin do każdej kolejki konsumenta dotyczyła "tego samego" tematu - powiedzmy na przykład: *.log.

Próbowałem wielu kombinacji i wydaje mi się, że mogę jednocześnie dostarczać wiadomości do kolejek klientów, co oznacza, że ​​przetwarzam komunikat dwukrotnie, raz na każdego konsumenta.

Dla jasności mam również wymianę fanoutową, której używam do "kontrolowania" konsumentów (start, stop itp.). To powinno pozostać na miejscu w każdym wyniku.

Wszelkie wskazówki dotyczące tego, jak najlepiej osiągnąć określony wynik, byłyby wspaniałe.

+3

Dlaczego chcesz zaokrąglać-robin wiadomości? jeśli chcesz rozprowadzić pracę, przepompuj wszystko do jednej kolejki i odbierz wiele klientów "log file" z tej kolejki ... – kzhen

+0

Szukamy tego samego. jakie rozwiązanie znalazłeś w tym celu? – YaOg

+0

Rozwiązałem to za pomocą wiązań e2e (wymiana-do-wymiany). http://stackoverflow.com/a/39577177/67065 – Raine

Odpowiedz

10

Każdy konsument ma własny (wyjątkowo) o nazwie kolejki dołączony do wymiany tematu

Sztuką jest, aby każdy pracownik/konsumenta, który chcesz round-robin pomiędzy Aby ustawić nazwie kolejki i wszyscy używają tej samej kolejki zamiast tworzyć własne.

Można więc utworzyć nazwaną kolejkę o nazwie "log" dla wszystkich pracowników "log". Stworzyłbyś inną nazwaną kolejkę dla powiedzenia "foo" dla wszystkich pracowników "foo". Wnioski będą dostarczane w trybie "round-robin" wszystkim konsumentom, którzy spoglądają na tę samą kolejkę.

Powiązane problemy