负载平衡Tibco EMS主题订阅者

时间:2013-05-28 14:09:37

标签: jms load-balancing tibco tibco-ems jms-topic

我有一个Tibco EMS主题订阅者,我需要在不同实例之间进行负载平衡。每个用户负载均衡组的一个(且仅一个)实例需要接收每条已发布的主题消息。

仅使用全局主题和平衡的EMS连接(tcp://localhost:7222|tcp://localhost:7224)会导致每个订阅者负载平衡组的所有实例收到相同的消息,从而产生重复项。

您是否知道负载均衡主题订阅者的替代方案?

3 个答案:

答案 0 :(得分:1)

你可以:

A)将主题桥接到队列并重新配置您的订阅者以从队列中读取。队列的行为与主题不同,因为消息只能由一个订户而不是所有订户获得。

B)在主题上创建一些持久订阅者,其中选择器在耐用品之间划分消息。例如。如果邮件的属性“id”按顺序增加:

create durable topic DURABLENAME1 selector="(id - 2 * (id / 2)) = 0"
create durable topic DURABLENAME2 selector="(id - 2 * (id / 2)) = 1"

选择器只是一个模数,因此一半的消息将持续一个持久,另一半消息传递给另一个。

答案 1 :(得分:1)

使用EMS 8.0添加新概念共享订阅,这些只有一个订阅接收具有相同订阅名称的消息,请通过EMS用户指南文档来帮助您。

答案 2 :(得分:1)

虽然之前的两个答案都是有效的,但最自然的方法是根本不使用主题。

使用队列代替pf主题完成整个工作(以循环方式进行负载均衡)。