【问题标题】:How advanced can Tibco EMS selectors get?Tibco EMS 选择器有多先进?
【发布时间】:2013-06-10 08:20:01
【问题描述】:

我希望在我的 Bridge Selector 中做的事情与您在此处看到的效果一样:

(DC in('2','3','4','5','6','8','9','10','20','21','22','23') AND ActivityType in('Begin Day','End Day','Depart Center','Arrive Center','Payment'))
OR
(DC in('2','3','4','5','6') AND ActivityType in('Trip Begin','Trip End'))

此处以多行格式显示,以便于阅读。

这有效吗?拥有如此复杂的选择器是否会对性能造成很大影响? 任何帮助将不胜感激。

【问题讨论】:

  • 就个人而言,我会选择比数字代码更具可读性的东西,例如对其进行分类。 “WorkTrip”、“PleasureTrip”等。但这完全取决于您的用例。
  • 是的...如果我们可以控制放置在主题上的消息。
  • 当然有。 :)

标签: java jakarta-ee jms tibco tibco-ems


【解决方案1】:

影响性能的不仅仅是负载。这也是队列的大小。负载决定了每个时间单位执行选择器的次数。队列的大小决定了它执行了多少消息。当然,如果你有负载均衡的消费者,那么这又会增加选择器的执行次数。

您也可以考虑创建一座桥梁(如果这在您的情况下可行)。将您的输入队列桥接到另一个队列并在桥上应用选择器。然后你的消费者可以在没有选择器的情况下从队列中读取。

在这种情况下,选择器只应用于每条消息一次。

【讨论】:

    【解决方案2】:

    有效。我想在问题中实现选择器后,我会传达我的一些发现......

    在进行一些测试后,网桥正在按预期选择消息。当系统处于中等负载下时,似乎也没有任何明显的性能损失。由于时间限制,我无法模拟重负载,因此我无法提供任何关于它在那里的表现的 cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 2016-10-21
      • 2010-12-11
      • 2011-04-03
      • 2011-04-03
      • 2015-04-26
      • 2014-07-12
      相关资源
      最近更新 更多