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 提供程序将发布放入此队列。订阅者然后从该队列接收发布。
这个问题看起来很别扭,肯定是知识匮乏。我找不到关于它是如何以编程方式构建的主题的任何资源。我理解发布者向主题发布消息,订阅者消费主题的消息。但我不明白的是它是如何以编程方式构建的。
例如,在点对点模型中,您有一个消息队列,可以将其视为遵循 FIFO 的线性数据结构。虽然它没有必要遵循 FIFO 但很好。所以这让我强调了队列是如何以编程方式构建的。在这方面,主题是如何构建的?
主题通常实现为树结构,“/”是树的根,子级位于不同级别。
下图显示了如何组织主题树。主题树有两个子节点,一个用于 SPORT,另一个用于 NEWS,每个节点都有子节点。
/SPORT/FOOTBALL/LIVERPOOL
。此订阅者将只会获得主题为 /SPORT/FOOTBALL/LIVERPOOL
的出版物。对于对世界新闻感兴趣的其他人,可以订阅主题 /NEWS/WORLD
。对于对所有内容都感兴趣的人,只需订阅 /
作为主题即可。
为主题创建订阅时,JMS 提供程序会创建一个称为 Subscription Queue
的东西。 JMS 提供程序将发布放入此队列。订阅者然后从该队列接收发布。