RabbitMQ jest idealny do tej sytuacji. Masz wiele możliwości zrobienia tego, co chcesz. Sugeruję przeczytanie dokumentacji, aby uzyskać lepsze zrozumienie. Proponuję użyć tematu lub bezpośredniej wymiany. Temat jest bardziej elastyczny. Tak to wygląda.
Kod producenta łączy się z brokerem RabbitMQ i tworzy i wymienia na konkretną nazwę.
Producent publikuje do wymiany. Każda opublikowana wiadomość zostanie opublikowana wraz z kluczem routingu.
Konsument łączy się z brokerem RabbitMQ. tworzy
Consumer Kolejka
konsumentów wiąże się kolejka do wymiany, tym samym wymiany określonym w producenta. Wiązanie obejmuje również klucze routingu dla każdego komunikatu wymaganego dla tego konkretnego konsumenta.
Powiedzmy, że publikujesz komunikaty dziennika. Klucz routingu może wyglądać jak "log.info", "log.warn", "log.error". Każda wiadomość opublikowana przez producenta będzie zawierała odpowiedni klucz routingu. Będziesz wtedy mieć konsumenta, który wysyła i wysyła e-mailem wszystkie komunikaty o błędach i inny, który zapisuje wszystkie komunikaty o błędach do pliku. Tak więc program pocztowy określi powiązanie z kolejki do wymiany za pomocą klawisza routingu "log.error". W ten sposób, chociaż wymiana odbierze wszystkie wiadomości, kolejka zdefiniowana dla wiadomości e-mail będzie zawierała tylko komunikaty o błędach. Filelogger zdefiniuje nową oddzielną kolejkę powiązaną z tą samą giełdą i skonfiguruje inny klucz routingu. Możesz wykonać trzy oddzielne powiązania dla trzech różnych kluczy routingu, lub po prostu użyć wieloznacznego "log. *", Aby zażądać wszystkich wiadomości z giełdy, zaczynając od dziennika.
Jest to prosty przykład pokazujący, w jaki sposób można osiągnąć to, co chce się zrobić.
wygląd here przykłady kodu specjalnie Numer tutorialu 5.
Jeśli naprawdę Twój konsument musi subskrybować ** ** (nie interesuje wiadomości publikowane _before_ abonamentu), abonament (i wiążące się z reguły wyboru) nie jest do istniejącego _queue_, ale do istniejącego _exchange_ (jak podano poniżej). Następnie należy zmienić treść pytania. – Myobis