Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 8397|Отговор: 0

Въведение в трите режима на обмен (фанаут, директен и тематичен режим) на RabbitMQ

[Копирай линк]
Публикувано в 29.03.2018 г. 14:30:45 ч. | | | |
Въвеждането:
В RabbitMQ всички съобщения, изпращани от производителите, се приемат от Exchange, който след това ги препраща към Queue за съхранение според специфична политика
RabbitMQ предлага четири типа обмени: fanout, direct, topic и header
Режимът на заглавие е по-рядко използван на практика, а тази статия сравнява само първите три режима.

1. Директен обмен


Всички съобщения, изпратени до Direct Exchange, се препращат към опашката, посочена в RouteKey.

1. Общо взето, можете да използвате Exchange, който идва с rabbitMQ:" (името на Exchange е празен низ, наричан по-нататък стандартният Exchange).

2. В този режим няма нужда да се извършват никакви операции за свързване в Exchange

3. За съобщенията е необходим "RouteKey", който може просто да се разбере като името на опашката, към която трябва да се изпрати.

4. Ако името на опашката, посочено в RouteKey, не съществува във vhost-а, съобщението се прекъсва.

2. Размяна на разклонения


Всички съобщения, изпратени до Fanout Exchange, се препращат към всички опашки, свързани с тази Exchange.

1. Може да се разбере като модел на таблицата за маршрутизиране

2. Този режим не изисква RouteKey

3. Този режим изисква предварително обвързване на Exchange с опашка, една Exchange може да обвърже няколко опашки, а една опашка може да бъде обвързана с няколко Exchange.

4. Ако борсата, която е получила съобщението, не е обвързана с никаква опашка, съобщението се прекъсва.

3. Обмен на теми


Всички съобщения, изпратени до Обмена на теми, се препращат към всички опашки, които се интересуват от темите, посочени в RouteKey

1. Този модел е по-сложен, просто казано, всяка опашка има собствена тема на загриженост, всички съобщения имат "заглавие" (RouteKey), а Exchange препраща съобщението към всички опашки, които могат фугово да съвпаднат с RouteKey на темата, която се интересува.

2. Този режим изисква RouteKey, може би предварително свързване на Exchange и Queue.

3. При свързване се предоставя тема, която интересува опашката, например "#.log.#", за да се покаже, че опашката се интересува от всички съобщения, свързани с логове (съобщение с RouteKey на "MQ.log.error" ще бъде препратено към опашката).

4. "#" означава 0 или няколко ключови думи, а "" означава една ключова дума. Например, "log". Може да съвпадне с "log.warn", но не може да съвпадне с "log.warn.timeout"; Но "log.#" съвпада с горното.

5. По същия начин, ако Exchange не намери опашка, която съвпада с RouteKey, ще изхвърли това съобщение.




Предишен:Използвайте XPosed, за да заобиколите силната валидация на Android SSL сертификати
Следващ:.net/c# RabbitMQ прекъсване на връзката - прекъсване и повторно свързване
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com