2012-07-06 14 views
8

enter image description hereJak wdrożyć modelu pojedynczego konsumenta wielu kolejek do RabbitMQ

Znalazłem ten obraz jest bardzo podobny do mojego modelu bussiness. Muszę podzielić wiadomość na jakąś kolejkę. dla ciężkiej pracy. Mogę dla nich dodać więcej wątków roboczych. Ale dla niektórych nie ma dużo ciężkiej pracy. Mogę pozwolić pojedynczemu konsumentowi na subskrybowanie ich wiadomości. Ale jak to zrobić w rabbitMQ. Poprzez ich dokument. Właśnie znalazłem model z jedną kolejką i wieloma odbiorcami.

+0

Zapoznaj się z samouczkami [Getting Started] (http://www.rabbitmq.com/getstarted.html). Kiedy po raz pierwszy spojrzałem na RabbitMQ, znalazłem ich tutoriale i pomogłem być naprawdę dobrym. W szczególności sprawdź sekcję [Tematy] (http://www.rabbitmq.com/tutorials/tutorial-five-python.html) - na przykład możesz subskrybować wiele kolejek na podstawie klucza routingu. – AdaTheDev

Odpowiedz

0

RabbitMQ ma bardzo elastyczny model, który umożliwia różnorodne scenariusze routingu się odbyć.

  1. Potrzebuję podzielić wiadomość do niektórych kolejki. za ciężką pracę. Mogę dla nich dodać więcej wątków roboczych.

Tak, jest to obsługiwane przez bezpośrednią wymianę. Opublikuj wiadomość, używając klucza routingu, który jest taki sam jak nazwa kolejki. Dla wygody powiedzmy, że używasz w pełni kwalifikowanej nazwy obiektu (np. MyApp.Objects.DataTypeOne). Wszystko, co musisz zrobić, to zasubskrybować wiele procesów zużywających się w tej kolejce, a RabbitMQ wyładuje saldo, stosując podejście typu round-robin.

  1. Ale dla niektórych nie ma dużo ciężkiej pracy. Mogę pozwolić pojedynczemu konsumentowi na subskrybowanie ich wiadomości.

Tak, możesz to również zrobić. Ten sam proces, co w powyższym akapicie. Po prostu nie dołączaj wielu procesów konsumujących.

Znalazłem ten obraz jest bardzo podobny do mojego modelu biznesowego.

Schemat nie jest zbyt użyteczny, ponieważ brakuje mu informacji o typie publikowanych wiadomości. W tym sensie jest to tylko schemat połączeń międzysieciowych. Ciekawymi liniami są te, które łączą kolejki z giełdą, ponieważ to właśnie określasz w RabbitMQ przez Queue Bindings. Możesz również powiązać wymiany ze sobą, ale to trochę dalej niż prawdopodobnie musimy iść.

Cała reszta na diagramie jest w pełni pod Twoją kontrolą jako użytkownik systemu RabbitMQ/AMQP. Możesz utworzyć dowolną liczbę wydawców i mieć dowolną liczbę zużywających się procesów, które zużywają z dowolnej liczby kolejek. Nie ma żadnych twardych i szybkich ograniczeń, chociaż są pewne praktyczne aspekty, o których prawdopodobnie będziesz chciał pomyśleć, aby upewnić się, że twój system jest obsługiwany.

Powiązane problemy