Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 8397|Відповідь: 0

Вступ до трьох режимів обміну (фанаут, прямий і тематичний) RabbitMQ

[Копіювати посилання]
Опубліковано 29.03.2018 14:30:45 | | | |
Введення:
У RabbitMQ усі повідомлення, наділені виробниками, приймаються Exchange, яка потім пересилає їх до Queue для зберігання відповідно до конкретної політики
RabbitMQ пропонує чотири типи обмінів: fanout, direct, topic та header
Режим заголовка використовується рідше на практиці, і ця стаття порівнює лише перші три режими.

1. Прямий обмін


Будь-які повідомлення, надіслані до Direct Exchange, пересилаються до Черги, вказаної в RouteKey.

1. Загалом, ви можете використовувати біржу, яка йде в комплекті rabbitMQ:" (назва Біржі — це порожній рядок, далі — стандартний Обмін).

2. У цьому режимі немає потреби виконувати жодних операцій зв'язку на Exchange

3. Для обміну повідомленнями потрібен «RouteKey», який можна просто зрозуміти як назву черги, куди слід відправити.

4. Якщо ім'я черги, вказане в RouteKey, не існує у vhost, повідомлення скидається.

2. Обмін фанаутами


Будь-які повідомлення, надіслані до Fanout Exchange, пересилаються до всіх черг, пов'язаних із цією біржею.

1. Її можна розуміти як патерн таблиці маршрутизації

2. У цьому режимі не потрібен RouteKey

3. Цей режим вимагає заздалегідь прив'язати Exchange до Queue, одна біржа може зв'язати кілька черг, а одна черга — до кількох бірж.

4. Якщо біржа, що отримала повідомлення, не прив'язана до жодної черги, повідомлення скидається.

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


Будь-які повідомлення, надіслані до Topic Exchange, пересилаються до всіх черг, які цікавляться темами, зазначеними в 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, щоб обійти сильну перевірку SSL-сертифікатів Android
Наступний:.net/c# Відключення з'єднання RabbitMQ — відключення та повторне підключення
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com