发布/订阅模型,主题的结构是什么?

时间:2016-10-18 02:13:58

标签: java jms publish-subscribe domain-model

这个问题可能看起来很尴尬,绝对是因为缺乏知识。我无法找到任何有关如何以编程方式构建的主题的资源。我知道发布者会向主题发布消息,订阅者会使用该主题的消息。但我不明白的是它的结构化编程方式。

例如,在点对点模型中,您有一个消息队列,可以将其视为FIFO之后的线性数据结构。虽然它没有必要遵循FIFO但很好。所以这给了我一些强调队列如何以编程方式构建的重点。在这方面如何构建主题?

1 个答案:

答案 0 :(得分:1)

主题通常以树形结构实现,其中包含' /'是树的根和不同层次的孩子。

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

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