2016-10-18 10 views
1

Этот вопрос может показаться неудобным и определенно обусловлен недостатком знаний. Я не мог найти никаких ресурсов на тему того, как он структурирован программно. Я понимаю, что издатель публикует сообщения по этой теме, а подписчики потребляют сообщения этой темы. Но я не понимаю, как он структурирован программно.Опубликовать/Подписывать модель, какова структура темы?

Например, в модели «точка-точка» у вас есть очередь сообщений, которая может рассматриваться как линейная структура данных, следующая за FIFO. Хотя это не обязательно, следуйте FIFO, но очень хорошо. Поэтому это дает мне некоторое представление о том, как очередь структурирована в программном порядке. Как структурирована тема в этом отношении?

ответ

1

Тема обычно реализуется как древовидная структура с «/», являющимся корнем дерева и детьми на разных уровнях.

На следующем рисунке показано, как можно организовать дерево тем. В дереве тем есть два дочерних узла: один для SPORT и другой для NEWS, у каждого из которых есть дети. enter image description here Этот способ организации дерева тем позволяет создавать подписи на нескольких уровнях. Например, абонент, который интересуется только своим любимым футбольным клубом, LIVERPOOL будет подписаться на тему строки как /SPORT/FOOTBALL/LIVERPOOL. Этот подписчик будет получать публикации только по теме /SPORT/FOOTBALL/LIVERPOOL. Для кого-то другого, интересующегося мировыми новостями, подписаться на тему /NEWS/WORLD. Для кого-то, кого это интересует, все будет просто подписаться на / в качестве темы.

Когда подписка создана для темы, поставщик JMS создает что-то известное как Subscription Queue. Поставщик JMS помещает публикации в эту очередь. Затем абонент получает публикации из этой очереди.