ZeroMQ——一個輕量級的訊息通訊組件 C#

來源:互聯網
上載者:User

標籤:

ZeroMQ——一個輕量級的訊息通訊組件

ZeroMQ是一個輕量級的訊息通訊組件,儘管名字中包含了"MQ",嚴格上來講ZeroMQ並不是"訊息佇列/訊息中介軟體"。ZeroMQ是一個傳輸層API庫, 更關注訊息的傳輸。與訊息佇列相比,ZeroMQ有以下一些特點:

點對點無中間節點

傳統的訊息佇列都需要一個Message Service器來儲存轉寄訊息。而ZeroMQ則放棄了這個模式,把側重點放在了點對點的訊息傳輸上,並且(試圖)做到極致。以為Message Service器最終還是轉化為伺服器對其他節點的點對點訊息傳輸上。ZeroMQ能緩衝訊息,但是是在發送端緩衝。ZeroMQ裡有水位設定的相關介面來控制緩衝量。當然,ZeroMQ也支援傳統的訊息佇列(通過zmq_device來實現)。

強調訊息收發模式

在點對點的訊息傳輸上ZeroMQ將通訊的模式做了歸納,比如常見的訂閱模式(一個訊息發多個客戶),分發模式(N個訊息平均分給X個客戶)等等。下面是目前支援的訊息模式配對,任何一方都可以做為服務端。 非常靈活。

 以統一介面支援多種底層通訊方式

不管是線程間通訊,處理序間通訊還是跨主機通訊,ZeroMQ都使用同一套API進行調用,只需要更改通訊協定名稱(如,從"ipc:///xxx"改為"tcp://...:****")即可。它提供了如下四種類型的傳輸協議:

  • TCP: 在主機之間進行通訊
  • INROC: 在同一進程的線程之間進行通訊(線程間)
  • IPC : 同一主機的進程之間進行通訊
  • PGM: 多播通訊

 非同步,強調效能

ZeroMQ設計之初就是為了高效能的訊息發送而服務的,所以其設計追求簡潔高效。它發送訊息是非同步模式,通過單獨出一個IO線程來實現。它的效能往往令其他訊息佇列架構難以望其項背。

學習文檔:

如下兩篇C#的入門文檔介紹得還不錯,這裡推薦一下。

  1. CodeProject上有一篇文章非常不錯:ZeroMQ via C#: Introduction,國內也有該文的譯文:通過C#使用ZeroMQ。
  2. 這篇Blog也介紹得非常通俗易懂新世紀通訊函式庫 – ZeroMQ
  3. 官方文檔ZeroMQ Guide也有比較詳盡的中文版本,CSDN上也有下載的:點擊下載

ZeroMQ——一個輕量級的訊息通訊組件 C#

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.