我試圖設計ZeroMQ架構N前端服務器和M後端工作者,前端服務器將發送任務到後端服務器。前端服務器確實有關於後端服務器的信息,但後端服務器不知道前端服務器。我有兩種類型的任務,一種類型應該使用輪循機制,並且只轉到一個後端服務器,而其他類型應該被轉播到所有後端服務器。我不想有一箇中央經紀人,因爲這將是單點失敗。ZeroMQ有選擇的酒吧/分模式?
對於第一種類型的任務,請求/響應模式似乎是正確的,而第二種模式則是發佈者/訂戶模式。但是如何組合這兩者呢?如果我想將消息發送到全部或只是一個隨機後端服務器,是否有任何模式可以讓我在發送時選擇?
我提出的解決方案只是使用發佈者/訂閱者,並將消息與後端服務器標識相加,並在發送給所有人時使用一些魔術值。但是,這會造成很多不必要的流量。有更乾淨更有效的方法嗎?
你可以使用兩套插座?所以每個後端都會在REP套接字和SUB套接字上偵聽。 – 2012-04-13 16:56:33
@ThomasK:我認爲這就是他說他現在正在做的事情。 OP想知道是否有某種模式將功能組合到單個套接字中? – jdi 2012-04-13 16:57:25
@jdi:不,他說他目前只使用一套套接字,並將後端ID放入消息中。這完全不同。 – 2012-04-13 17:00:55