2013-05-28 112 views
1

我有一個Tibco EMS主題訂閱者,我需要在不同實例之間進行負載平衡。發佈給主題的每條消息都需要由每個訂戶負載平衡組的一個(且僅有一個)實例接收。負載均衡Tibco EMS主題訂戶

僅使用全局主題和均衡的EMS連接(tcp://localhost:7222|tcp://localhost:7224)會導致每個訂戶負載平衡組的所有實例收到相同的消息,從而產生重複項。

您是否知道負載均衡主題訂戶的任何替代方案?

+1

你可以使用專有財產 – 2013-05-29 11:34:43

回答

1

您可以:

A)大橋的話題到隊列並重新配置你的用戶從隊列中讀取。隊列的行爲與主題不同,因爲消息只能由一個用戶而不是全部用戶獲得。

B)通過在耐用消費品之間劃分消息的選擇器在主題上創建大量持久訂閱者。例如。如果消息有一個屬性「ID」被依次增加:

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

的選擇僅僅是一個模所以一半的消息將繼續一個耐用,一半爲另一方。

+0

只是想確保我的理解是選項A.正確 出版商(隊列) - >(隊列)用戶(主題)發佈 - >訂閱(主題) 這是正確的? – user1357019

1

隨着EMS 8.0新概念共享訂閱添加與這些只有一個訂閱接收具有相同訂閱名稱的消息通過EMS用戶指南文檔,它可能會幫助你。

1

雖然前面的兩個答案都是有效的,但最自然的方法是根本不使用主題。

使用隊列來代替pf主題完成整個工作(以循環方式進行負載平衡)。

+0

有多個訂閱者(每個訂閱者都有一個lb配置)應該會收到相同的發佈消息 – fglez

+0

如果您在TIBCO EMS 8之下,請將主題橋接到每個訂閱者組的一個隊列並讓該組「輪循」隊列。如果您已經使用TIBCO EMS 8(如ramyasree所述),您可能會考慮使用JMS 2.0功能(共享訂閱) – Seb

+0

我們是否可以對某個主題的發佈者進行負載均衡? – user1357019