天天看點

Chapter 2 - Sockets and Patterns【選譯,哈哈】 Part 8 Node Coordination

當您想要協調網絡上的一組節點時,PAIR套接字将不能很好地工作。這是線程和節點政策不同的少數領域之一。基本上,節點來來去去,而線程通常是靜态的。如果遠端節點離開并傳回,PAIR套接字不會自動重新連接配接。

線程和節點之間的第二個顯著差別是,線程的數量通常是固定的,但節點的數量卻是可變的。

我們不能假設在REQ/REP對話框完成時SUB連接配接已經完成。如果您正在使用除inproc之外的任何傳輸,則不能保證出站連接配接将以任何順序完成。

一個更可靠的模型可以是:

Publisher打開PUB套接字并開始發送“Hello”消息(不是資料)。 

訂閱者連接配接SUB套接字,當他們收到Hello消息時,他們通過REQ/REP套接字對告訴釋出者。 

當發行商得到所有必要的确認後,它就開始發送真實的資料。

在pub-sub模式中,我們可以将密鑰分解為一個單獨的消息幀,我們稱之為信封。如果你想用pub-sub信封,自己做,這是可選的。對于簡單的情況,使用pub-sub信封要多做一些工作,但它更簡潔,特别是對于真實的情況,因為密鑰和資料是自然分離的東西。

訂閱執行字首比對。也就是說,它們查找“所有以XYZ開頭的消息”。顯而易見的問題是:如何将鍵與資料分隔開來,以便字首比對不會意外地比對資料。最好的答案是使用信封,因為比對不會跨越架構邊界。