1 應用場景
當前要做的一個內容是通過好幾個pub 客戶端向一個 sub 服務器publish數據信息,sub服務器用於將所得到的信息解析存儲到數據庫,但是出現了中間丟掉一些數據包的問題,如下所示,我總記發送類了4w的數據 丟了大概8個包.
2 推測可能的原因
The downside is that we actually need all of these if we want to do reliable multicast. The ZeroMQ pub-sub pattern will lose messages arbitrarily when a subscriber is connecting, when a network failure occurs, or just if the subscriber or network can't keep up with the publisher.
(1)slower subscriber : 我設定的高水位是非常 非常的高
(2)我也沒有出現 網絡的faiure
(3)在建立鏈接到publishers的時候,連接握手成功之前就已經發布數據的情況,爲了避免這個問題,我們採用了req-rep的同步的方案
(4)目前唯一的可能性就是network can't keep up with the publisher.
(思考,我的測試都是採用本機地址的tcp//127.0.0.1:6001, 有可能既要發送,又要接收,出現的網卡不能忙過來的情況.?後面進行驗證)
3 中間的驗證過程
(1) publishers----
9個進程同時運行,向sub中發佈數據
(2) subscriber 訂閱所有的數據.
單個進程運行,收到數據然後進行記錄
2020/04/27
--------------------------------------時間較晚,先記錄到這-------------------