Publish/Subscribe模特,题目结构是怎样的?

Publish/Subscribe Model, what is the structure of the topic?

这个问题看起来很别扭,肯定是知识匮乏。我找不到关于它是如何以编程方式构建的主题的任何资源。我理解发布者向主题发布消息,订阅者消费主题的消息。但我不明白的是它是如何以编程方式构建的。

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

主题通常实现为树结构,“/”是树的根,子级位于不同级别。

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

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