1. 程式人生 > >基於.NET框架的通訊元件ZMQ資料彙編-總目錄

基於.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高階知識的彙編,如有考慮不周,或表述不嚴謹之處,還望大家指出。

  1. 基本概念
    1. 接收和傳送
      1. 接收    
      2. 傳送
      3. 深度閱讀
    2. 訊息
      1. 訊息結構
      2. 建立multipart訊息
      3. 讀取multipart訊息
      4. 完整例項
    3. 傳輸
      1. 傳輸協議
      2. TCP
      3. Inproc(程序通訊管道)
      4. PGM(實際通用多播)
    4. 清除連線狀態
      1. 清除
      2. 為什麼需要清除
      3. 延遲關閉引數(Linger)
      4. 如何清除
      5. 測試
  2. 常見元件
    1. Poller輪詢
      1. 輪詢物件
      2. 應用目標1:提高效率
      3. 應用目標2:資料正確性校驗
      4. 示例程式碼:接收訊息
      5. 示例程式碼:傳送訊息
      6. 計時器
      7. 新增和移除socket物件和計時器物件
      8. 處理輪詢
      9. 複雜示例
      10. 效能
      11. 深度閱讀
    2. Actor行動者模型
      1. NetMQ行動者模型
      2. 什麼是行動者模型
      3. 多執行緒資料共享
      4. 行動者模型
      5. 行動者模型示例
    3. Beacon燈塔物件
      1. 燈塔物件
      2. 示例:實現匯流排
      3. 深度閱讀
    4. Timer計時器
      1. 計時器
    5. Queue佇列
      1. 佇列
    6. Proactor前攝器模型
      1. 前攝器
  3. 常見的幾種模式:       
    1. Request/Response 請求響應模式
      1. Request/Response說明
      2. 怎麼用?
      3. 請求響應-一種阻塞的通訊方式
    2. Pub/Sub推送訂閱模式
      1. 推送和訂閱
      2. 訂閱的主題Topics
      3. 訂閱順序
      4. 示例
      5. 其他注意事項
      6. 高緩衝池High water mark
      7. 慢速訂閱者Slow subscribers
      8. 後進訂閱者Late joining subscribers
    3. Push/Pull 推拉模式
      1. 推送和拉取
      2. 進氣門物件-Ventilator
      3. 工作者物件-Worker
      4. Sink物件
      5. 示例
    4. Router-Dealer 路由-點對點模式
      1. 路由和點對點
      2. 路由套接字
      3. 點對點套接字
      4. 示例
    5. XSub-XPub 超級訂閱分發模式 
      1. 超級訂閱者/釋出者
      2. 示例
2、高階模式: