ZMQ(概述)

ZeroMQ概述

ZeroMQ是一種基於消息隊列的多線程網絡庫,其對套接字類型、連接處理、幀、甚至路由的底層細節進行抽象,提供跨越多種傳輸協議的套接字。換句話說,ZMQ是一個消息處理隊列庫,可在多個線程、內核和主機盒之間彈性伸縮。普通的socket是端到端的(1:1的關係),而ZMQ卻是可以N:M 的關係。ZeroMQ 並不是一個對 socket 的封裝,不能用它去實現已有的網絡協議。它有自己的模式,不同於更底層的點對點通訊模式。它有比 tcp 協議更高一級的協議。(當然 ZeroMQ 不一定基於 TCP 協議,它也可以用於進程間和進程內通訊)它改變了通訊都基於一對一的連接這個假設。ZeroMQ 把通訊的需求看成四類。其中一類是一對一結對通訊,用來支持傳統的 TCP socket 模型,但並不推薦使用。常用的通訊模式只有三類:

 

一、請求迴應模型

由請求端發起請求,並等待迴應端迴應請求。請求和迴應是對應的,客戶端發送數據,服務端接收到數據之後迴應一條數。

一問一答,類似TCP。       

                                                                 

                                                                     

二、發佈訂閱模型

這個模型裏,發佈端是單向只發送數據的,且不關心是否把全部的信息都發送給訂閱端。如果發佈端開始發佈信息的時候,訂閱端尚未連接上來,這些信息直接丟棄。不過一旦訂閱端連接上來,所有的消息都會接收到。而訂閱端則只負責接收,不能發送數據。如果發佈端和訂閱端需要交互(比如要確認訂閱者是否已經連接上),則使用額外的 socket 採用請求迴應模型滿足這個需求。                         

                                                                  

三、管道模型

這個模型裏,管道是單向的,從 PUSH 端單向的向 PULL 端單向的推送數據流。可以實現負載均衡。                                              

不知道爲什麼,相關圖片上傳了 但是顯示不了。不知道是不是被和諧了。                         

                                  

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章