我目前有一個pub/sub系統正在運行,它允許客戶端連接到一箇中央消息路由守護進程,訂閱一系列消息,然後開始喋喋不休。路由守護進程跟蹤和維護每個用戶感興趣的消息(基於一個簡單的標籤),並在每個訂戶生成它們時傳遞相應的感興趣消息。基本上,每個連接都被認爲是潛在的發佈者或訂戶並且通常是,守護進程根據需要處理路由和傳送。ZeroMQ分佈模式
例如,三個客戶端的所有連接,並訂閱感興趣的消息標記(S)(MT):
Client 1(C1) subscribes to MT => 123
Client 2(C2) subscribes to MT => 123 & 456
Client 3(C3) subscribes to MT => 123 & 456 & 789
C1 produces MT 456: daemon delivers a copy to C2 and C3
C2 produces MT 123: daemon delivers a copy to C1 and C3 (not self)
C3 produces MT 999: daemon delivers it to none (nobody subscribed)
ZeroMQ與同事進行討論,並用它修補了幾個後,想出了我不認爲我看到了實施/替換我們目前擁有的系統的適當模式。此外,我想使用EPGM來利用多播增益,並消除當前擁有的基於TCP的守護進程,即中間的猴子。
有什麼建議嗎?
謝謝,這是好東西。我試圖採用epgm方法,並不確定我是否對zmq做了些愚蠢的事情,或者如果我在使用的服務器上存在MCAST環回問題。我確信我被困在了15年的車轍中(這是我編寫pub/sub守護進程的時候),我錯過了一些明顯的東西。仍然不確定發生了什麼問題,默認的TTL爲1應該允許在同一個系統上使用通信,但我會繼續插入。 – jbphelps 2013-04-24 00:39:55