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

Вид: 14746|Відповідь: 1

Різниця між чергою activemq і Topic у тому, що

[Копіювати посилання]
Опубліковано 14.07.2017 09:59:30 | | | |
Queue і Topic — це дві моделі обміну повідомленнями, які підтримує JMS:
        1. Модель обміну повідомленнями в черзі точка-точка (PTP):
        За цією моделлю обміну повідомленнями один додаток (тобто виробник повідомлення) може надіслати повідомлення іншому додатку (тобто споживачу повідомлення). У цій моделі доставки тип призначення повідомлення є чергою (тобто екземпляр класу реалізації інтерфейсу призначення створюється екземпляром класу реалізації інтерфейсу Session шляхом виклику його методу createQueue і передачі імені черги). Повідомлення спочатку доставляється до певної черги на стороні сервера повідомлень, а звідти воно передається споживачу, який слухає цю чергу. Одна й та сама черга може асоціювати кількох виробників і споживачів повідомлень, але повідомлення може бути доставлене лише одному споживачу повідомлення. Якщо кілька споживачів повідомлень слухають повідомлення в черзі, сервер JMS визначає, який споживач отримує наступне повідомлення на основі принципу «хто перший, того й прийшов». Якщо жоден споживач повідомлення не слухає чергу, повідомлення залишається в черзі, доки споживач не підключиться до черги. Ця модель обміну повідомленнями є лінивою або опитувальною моделлю у традиційному розумінні. У цій моделі повідомлення не надсилаються автоматично споживачу повідомлення, а запитуються з черги споживачем повідомлення.
        2. Модель обміну повідомленнями про публікацію/підписку (публікація/підрозділ):
        Завдяки цій моделі обміну повідомленнями додатки можуть надсилати одне повідомлення кільком споживачам повідомлень. У цій моделі доставки тип призначення повідомлення є темою (тобто екземпляр класу реалізації інтерфейсу Destination створюється екземпляром класу реалізації інтерфейсу Session шляхом виклику його методу createTopic і передачі імені теми). Спочатку повідомлення публікується на певній темі сервера повідомлень виробником повідомлення, який потім доставляє повідомлення всім споживачам, які підписалися на цю тему. Цілі теми також підтримують довгострокові підписки. Довгострокова підписка означає, що споживач зареєстрований у тематичній цілі, але може бути неактивним, коли повідомлення досягає адреси. Повідомлення буде отримано, коли споживач знову стане активним. Якщо жоден із споживачів не зареєстрований у тематичному напрямку, тема зберігає повідомлення лише для неактивних споживачів, які оформили довгострокову підписку. На відміну від моделі PTP-повідомлень, модель pub/sub дозволяє кільком підписникам за темою отримувати одне й те саме повідомлення. JMS зберігає повідомлення, доки всі підписники теми не отримають його. Модель pub/sub messaging по суті є push-моделлю. У цій моделі повідомлення транслюються автоматично, і споживачам не потрібно активно запитувати або опитувати теми, щоб отримувати нові повідомлення.
        Конкретні відмінності такі:

тип
Тема
Черга
Огляд
Опублікувати Підписатися повідомлення Опублікувати підписки
Точка-точка
Держави не існує
Дані теми за замовчуванням є безстанними.
Дані черги за замовчуванням зберігаються як файл на сервері MQ, наприклад, активний MQ зазвичай зберігається у $AMQ_HOME\data\kr-store\data. Його також можна налаштувати як сховище бази даних.
Гарантія цілісності
Немає гарантії, що кожен дані, опублікований видавцем, буде прийнятий підписником.
Черга гарантує, що кожен фрагмент даних може бути прийнятий отримувачем.
чи буде повідомлення втрачено
Загалом, коли видавець публікує повідомлення на тему, лише підрозділ, який слухає адресу теми, може отримати це повідомлення. Якщо немає підрозділу, тема втрачається.
Відправник надсилає повідомлення цільовій черзі, і отримувач може отримувати повідомлення в цій черзі асинхронно. Повідомлення в черзі не будуть втрачені, якщо наразі немає отримувача, який міг би їх прийняти.
Політика прийому повідомлень
Політика публікації та отримання повідомлень «один до багатьох»: кілька сабреддітів, які слухають одну й ту ж адресу теми, можуть отримувати повідомлення, надіслані видавцем. Сабреддіт отримує сповіщення на mq-сервер
Політики публікації та отримання повідомлень один на один, повідомлення, надіслані відправником, можуть бути отримані лише одним отримувачем. Після отримання отримувачем MQ-сервер повідомляє MQ-сервер про отримання, і MQ-сервер видаляє або виконує інші дії щодо повідомлень у черзі.





Попередній:Різниця між Google AdSense і Google AdWords
Наступний:.net/c# Taobao через натовп налаштувань поїздів [вихідний код]
 Орендодавець| Опубліковано 29.03.2018 13:09:01 |

Процес доставки повідомлень у черзі в JMS виглядає так:



У режимі черги видавець публікує повідомлення, а отримувачі нижче отримують його в порядку черги, наприклад, якщо опубліковано 10 повідомлень, два отримувачі A і B отримають загалом 10 повідомлень без дублювання.

Нижче наведено процес обміну тематичними повідомленнями JMS:



Для тематичного режиму, якщо видавець публікує повідомлення і є два отримувачі — А і Б — для підписки, то публікується 10 повідомлень, а А і Б отримують по 10 повідомлень кожен.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com