热门问题
时间线
聊天
视角

ØMQ

来自维基百科,自由的百科全书

Remove ads

ØMQ (也拼寫作ZeroMQ0MQZMQ)是一個為可伸縮的分散式或並行應用程式設計的高效能非同步訊息庫。它提供一個訊息佇列, 但是與訊息導向中介層不同,ZeroMQ的執行不需要專門的訊息代理message broker英語message broker)。該庫設計成常見的通訊端風格的API

快速預覽 開發者, 目前版本 ...

ZeroMQ是由iMatix公司和大量貢獻者組成的社群共同開發的。ZeroQ通過許多第三方軟體支援大部分流行的程式語言,從JavaPythonErlangHaskell

Remove ads

技術

類別館提供一些通訊端(對傳統Berkeley通訊端Unix domain socket的泛化),每一個通訊端可以代表一個之間的多對多英語many-to-many連接。以訊息的粒度進行操作,通訊端需要使用一種訊息模式message pattern英語message pattern),然後專門為那種模式進行了最佳化。

基本的ZeroMQ模式有:

請求回應模式
將一組客戶端連接到一組伺服器。這是一種遠端程序呼叫和任務分發模式。
發布/訂閱模式
將一組發布者連接到一組訂閱者。這是一種資料分發模式。
管道模式
以扇出/扇入模式連接節點,可以有多個步驟,可以有迴圈。這是一種並列的任務分發和收集模式。
排他對模式
在一個排他對中連接兩個通訊端。 (這是一種進階的為某種用例而設計的低階別模式)

任何通過通訊端的訊息被看作不透明的資料。傳送給訂閱者的訊息可以自動地通過塊最開始的字串進行過濾。ZeroMQ提供多種訊息傳輸協定,包括TCPPGM(可靠的多播),行程間通訊(IPC) 以及執行緒間通訊(ITC)。

由於內部執行緒模型,ZeroMQ的效能非常好,通過利用一種自動訊息批次處理技術,它甚至在吞吐量上超過了TCP的效能。[1][2]

ZeroMQ實現了ZMTP, ZeroMQ訊息傳輸協定。[3] ZMTP定義了向下相容性的規則,可延伸的安全機制,命令和訊息分訊框,連接元資料,以及其他傳輸層功能。不使用完整的ZeroMQ實現,而是直接實現ZMTP協定的專案不斷增加。[4]

Remove ads

歷史

2010年3月30日,AMQP的最初設計者iMatix公司的執行長Pieter Hintjens宣布iMatix將退出AMQP工作群組,而且為了簡單得多,快的多的ZeroMQ,將不支援 可能發布的AMQP/1.0[5][6]

2011年,歐洲核子研究組織 (CERN)調查了統一用於操作CERN加速器的中介軟體解決方案的方式,歐洲核子研究組織的研究比較了CORBAIceThrift,ZeroMQ, YAMI4,RTIQpid (AMQP) ,ZeroMQ得到了最高的分數。[2]

2012年3月,由於在專案控制權上的分歧,一些ZeroMQ的最初開發者建立了ZeroMQ的分支,Crossroads I/O. Crossroads I/O[7]計劃使用更常見的「仁慈獨裁者」模式,Martin Sustrik將充當仁慈獨裁者。[8]

2012年8月,Dongmin Yu宣布了他的純Java的ZeroMQ實現,JeroMQ.[9] 這激發了更多的ZeroMQ全在地化的移植,例如C#的NetMQ。[10]

2013年3月, Pieter Hintjens宣布了ZMTP線級協定的新的草案,為ZeroMQ提供了安全機制的可延伸性。[11]

Remove ads

參見

參考文獻

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads