基於.NET框架的通訊元件ZMQ資料彙編-總目錄
ZMQ是一個比較輕量級的訊息通訊元件,引用官方的說法: “ZMQ (以下 ZeroMQ 簡稱 ZMQ)是一個簡單好用的傳輸層,像框架一樣的一個 socket library,他使得 Socket 程式設計更加簡單、簡潔和效能更高。是一個訊息處理佇列庫,可在多個執行緒、核心和主機盒之間彈性伸縮。ZMQ 的明確目標是“成為標準網路協議棧的一部分,之後進入 Linux 核心”。現在還未看到它們的成功。但是,它無疑是極具前景的、並且是人們更加需要的“傳統”BSD 套接字之上的一層封裝。ZMQ 讓編寫高效能網路應用程式極為簡單和有趣。”
ZMQ元件廣泛適用於.NET開發領域,其原生版本採用C++語言開發,目前已經提供了包括C++、安卓、IOS、Python等眾多語言的版本,而.NET版本實際上是基於C++的移植版本,事實上.NET版本也有多個版本,而目前使用情況較為良好的版本為NETMQ,可以通過Nuget下載並使用,新增到專案中,會新增兩個類庫,一個為NetMQ.dll,另外一個為SyncIO.dll。
暫時未發現.NET Core的移植版本,期待社群或外網的高手能夠將其移植成.NET CORE,為社群提供助力。
目前我們公司已使用ZMQ作為核心通訊元件,在後端、客戶端等眾多應用中使用。基於ZMQ的資料目前非常多,包括官方入門指南等,都可以作為大家入門的重要依據,除此之外,外網也有非常廣泛的知識體系,不過基本上都是英語版本,因此,特意編寫這個系列,其主要目的是將各類資料進行統一彙總,方便自己的同時,也期待能為其他感興趣的朋友提供助力。
總目錄的第一部分主要為官方入門指南的詳細說明,而第二部分為外網相關資料、以及ZMQ高階知識的彙編,如有考慮不周,或表述不嚴謹之處,還望大家指出。
- 基本概念
- 接收和傳送
- 接收
- 傳送
- 深度閱讀
- 訊息
- 訊息結構
- 建立multipart訊息
- 讀取multipart訊息
- 完整例項
- 傳輸
- 傳輸協議
- TCP
- Inproc(程序通訊管道)
- PGM(實際通用多播)
- 清除連線狀態
- 清除
- 為什麼需要清除
- 延遲關閉引數(Linger)
- 如何清除
- 測試
- 常見元件
- Poller輪詢
- 輪詢物件
- 應用目標1:提高效率
- 應用目標2:資料正確性校驗
- 示例程式碼:接收訊息
- 示例程式碼:傳送訊息
- 計時器
- 新增和移除socket物件和計時器物件
- 處理輪詢
- 複雜示例
- 效能
- 深度閱讀
- Actor行動者模型
- NetMQ行動者模型
- 什麼是行動者模型
- 多執行緒資料共享
- 行動者模型
- 行動者模型示例
- Beacon燈塔物件
- 燈塔物件
- 示例:實現匯流排
- 深度閱讀
- Timer計時器
- 計時器
- Queue佇列
- 佇列
- Proactor前攝器模型
- 前攝器
- 常見的幾種模式:
- Request/Response 請求響應模式
- Request/Response說明
- 怎麼用?
- 請求響應-一種阻塞的通訊方式
- Pub/Sub推送訂閱模式
- 推送和訂閱
- 訂閱的主題Topics
- 訂閱順序
- 示例
- 其他注意事項
- 高緩衝池High water mark
- 慢速訂閱者Slow subscribers
- 後進訂閱者Late joining subscribers
- Push/Pull 推拉模式
- 推送和拉取
- 進氣門物件-Ventilator
- 工作者物件-Worker
- Sink物件
- 示例
- Router-Dealer 路由-點對點模式
- 路由和點對點
- 路由套接字
- 點對點套接字
- 示例
- XSub-XPub 超級訂閱分發模式
- 超級訂閱者/釋出者
- 示例