幾個月前,我選擇.NET庫來實現ZeroMQ通信,我很困惑這個事實,即在zeromq.org處建議的庫很少。NetMQ vs clrzmq
同時我學到了一些東西,所以我會在這裏分享。有人可能會覺得這很有幫助。所以讓我問自己:
NetMQ和clrzmq有什麼區別?
(雖然我會回答這個自己,如果任何人有關於這個問題的一些經驗 - 備選答案是歡迎!)
幾個月前,我選擇.NET庫來實現ZeroMQ通信,我很困惑這個事實,即在zeromq.org處建議的庫很少。NetMQ vs clrzmq
同時我學到了一些東西,所以我會在這裏分享。有人可能會覺得這很有幫助。所以讓我問自己:
NetMQ和clrzmq有什麼區別?
(雖然我會回答這個自己,如果任何人有關於這個問題的一些經驗 - 備選答案是歡迎!)
兩者之間的主要區別是在方法:
libzmq
庫(這是一個.NET包裝的libzmq
庫);libzmq
,但是將它重寫爲純C#中的。要使用哪一個?那麼,沒有簡單的答案。在選擇時請注意以下幾點:
libzmq
應該比任何託管代碼快得多,但是在CLRZMQ和libzmq
之間的通信必須發生,所以我真的無法預測哪個庫會在速度上獲勝。更新:NetMQ的另一個重要優勢是支持 - 您將在一兩天內得到答案,有時在幾小時內得到答案。
更新2:NetMQ中的輪詢器實現問題(描述爲here)在我的情況下證明是NetMQ的瓶頸問題。由於這個問題,我已經將我的項目遷移到了CLRZMQ(我可能會改變主意......)然而,在談論輪詢時,CLRZMQ文檔中有一個問題應該注意,它的描述here
根據多倫Somech:
http://somdoron.com/2013/03/introducing-netmq/
作爲2014 C#結合(CLRZMQ)不再保持和NetMQ爲ZeroMQ和.Net的默認選擇。
看來:
https://github.com/zeromq/clrzmq4
取代了原來的CLRZMQ項目。
我正在使用NetMQ並期待爲該項目做出貢獻。
P.S.我爲NetMQ和本機ZeroMQ構建了相同的Pub-Sub方案,但未發現任何性能差異。好,Doron!