3

我打算在我的 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'))

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

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

4

2 回答 2

1

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

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

于 2013-06-18T17:46:35.283 回答
0

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

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

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

于 2015-01-18T15:58:49.343 回答