消息选择器与Tibco EMS上的消息过滤主题

时间:2016-11-18 09:28:19

标签: jms tibco-ems jms-topic ems

我正在使用Tibco EMS主题进行发布/订阅通信来处理客户端服务器应用程序。

在我们的一个用例中,我们需要每分钟发送数百万条消息,分成> 200k"科目"

每个客户都对他需要订阅的一小部分主题感兴趣。

问题是,哪些实施更合理:

  1. 通过单个主题发送所有消息,并使用消息选择器按相关主题进行过滤。

  2. 为每个主题创建一个非静态主题,让客户订阅相关主题'话题。

1 个答案:

答案 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功能强大,可以占用很多,但其他产品可以更轻,更具性能。