ZeroMQ 乙個輕量級的訊息通訊元件 C

2021-09-07 01:29:38 字數 948 閱讀 5039

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

點對點無中間節點

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

強調訊息收發模式

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

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

不管是執行緒間通訊,程序間通訊還是跨主機通訊,zeromq都使用同一套api進行呼叫,只需要更改通訊協議名稱(如,從"ipc:///***"改為"tcp://...:****")即可。它提供了如下四種型別的傳輸協議:

非同步,強調效能

zeromq設計之初就是為了高效能的訊息傳送而服務的,所以其設計追求簡潔高效。它傳送訊息是非同步模式,通過單獨出乙個io執行緒來實現。它的效能往往令其他訊息佇列框架難以望其項背。

學習文件:

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

zeromq via c#: introduction,國內也有該文的譯文:

通過c#使用zeromq。

這篇blog也介紹得非常通俗易懂

新世紀通訊函式庫 – zeromq

ZeroMQ 乙個輕量級的訊息通訊元件

zeromq是乙個輕量級的訊息通訊元件,儘管名字中包含了 mq 嚴格上來講zeromq並不是 訊息佇列 訊息中介軟體 zeromq是乙個傳輸層api庫,更關注訊息的傳輸。與訊息佇列相比,zeromq有以下一些特點 點對點無中間節點 傳統的訊息佇列都需要乙個訊息伺服器來儲存 訊息。而zeromq則放棄...

UWP 實現乙個輕量級的應用內訊息通知控制項

在uwp應用開發中,我們常常有向使用者傳送一些提示性訊息的需求。這種時候我們一般會選擇messagedialog contentdialog或者toastnotification來完成功能。但是,我們大多數時候僅僅是需要在應用內向使用者顯示一條提示訊息 例如 登入成功!不需要使用者對這條訊息做出處理...

peewee 乙個輕量級的ORM 四

class database last insert id cursor,model parameters return type 最後乙個插入的記錄的那行的主鍵,不一定非得叫 id rows affected cursor return type 受影響的行數 create table model...