我正在使用Tibco EMS主题进行发布/订阅通信来处理客户端服务器应用程序。
在我们的一个用例中,我们需要每分钟发送数百万条消息,分成> 200k"科目" 。
每个客户都对他需要订阅的一小部分主题感兴趣。
问题是,哪些实施更合理:
通过单个主题发送所有消息,并使用消息选择器按相关主题进行过滤。
为每个主题创建一个非静态主题,让客户订阅相关主题'话题。
答案 0 :(得分:2)
总之,Messaging架构(您的问题)和容量/性能测试等活动最终将为您提供答案。
关于消息传递架构,有很多问题要问:
您的问题高度依赖于主题的类型和数量及其性质。
当主题相关时,消息选择器可能非常有用,而某些订阅者只对子集感兴趣。
示例1:一个主题报告,带有JMS标题&#34; ReportType&#34;当下。 在这种情况下,某些客户端迁移更喜欢擦洗所有消息,而其他客户端可能使用&#34; ReportType = Sales或ReportType = Weekly&#34;进行订阅。 如果主题列表一直变化,这个例子可能会非常粗略...什么程序有兴趣获取所有报告,事件是它不知道的事件(它们必须被自我描述为有用)< / p>
示例2:如果主题在层次结构中相关... EMS和MQ中的订阅可以是一个特定分支。想象一下3个主题:REPORTS,REPORTS.WEEKLY和REPORTS.SALES 客户可以在EMS中sunscribe到REPORTS。* ...这是在没有消息选择器的情况下完成的。
示例3:非静态主题。在该示例中,您可以随时创建主题...但是必须担心许多事情:测试扩展,获取客户的主题列表,管理主题的弃用,使客户听取许多主题(非常困难。 ..倍数连接???)等。
祝你的设计好运,
附注:至于你的目标是......如果你的容量/性能测试对EMS不满意,请不要犹豫FTL(另一个TIBCO产品)或者像RabbitMQ这样的产品&#&#&# 39; T介意失去JMS功能。 EMS功能强大,可以占用很多,但其他产品可以更轻,更具性能。