2016-10-18 27 views
1

这个问题看起来很尴尬,肯定是由于缺乏知识。我无法找到关于程序化结构的资源。我知道发布者将消息发布到主题,并且订阅者使用该主题的消息。但我不明白的是,它是如何以编程方式进行结构化的。发布/订阅模型,该主题的结构是什么?

例如,在点对点模型中,您有一个消息队列,可以在FIFO之后看作线性数据结构。虽然它没有必要遵循先入先出的原则,但很可能。所以这给了我一些关于如何以编程方式构造队列的重点。这个话题是如何构成的?

回答

1

主题通常实现为树结构,其中'/'是树的根和不同级别的子节点。

下图显示了如何组织主题树。主题树有两个子节点,一个用于SPORT,另一个用于NEWS,每个节点都有孩子。 enter image description here 这种主题树组织方式允许在多个级别创建订阅。例如,只对他/她最喜欢的足球俱乐部LIVERPOOL感兴趣的用户将以主题字符串订阅/SPORT/FOOTBALL/LIVERPOOL。此订阅者将只获得与主题/SPORT/FOOTBALL/LIVERPOOL一起发布的出版物。对于对世界新闻感兴趣的其他人,可以订阅主题/NEWS/WORLD。对于感兴趣的人来说,一切只需订阅/作为主题。

为某个主题创建订阅时,JMS提供程序会创建一个名为Subscription Queue的内容。 JMS提供程序将发布放入此队列。用户然后从该队列接收发布。