ZeroMQ中PUB-SUB模式測試

    由於公司有需求,對程序模塊之間通訊效率有較高的需求。以前公司用的通訊組件是ActiveMQ,根據網上公佈的測試結果顯示其效率比較低, 後來考慮準備在新的項目中開始使用ZeroMQ。看了幾天發現用起來比較簡單,可是不知道怎麼用進咱們的項目中,加之項目比較着急就擱淺了,轉而選擇了與socketAPI相近的boost庫中的Asio庫,由於本人比較菜,最近測試發現了各類坑!!!各類坑!!!(對Asio不熟悉的童鞋對新項目慎用)linux

    而後最近就又開始看ZeroMQ,發現網上demo程序很多,可是解釋清楚的不多,因此在這裏記錄測試記錄,並督促本身善始善終。官網上有很好的demo程序,我就不貼出來了,要注意的是,demo都是最新的Linux版本的,因此源碼最好也是下載最新的,windows上編譯須要稍微改動。編程

    ZeroMQ推崇模式編程,第一種請求應答沒什麼說的。第二種PUB-SUB模式中,服務端沒什麼,對客戶端的配置接口有疑問:windows

    int zmq_setsockopt (void *s, int option, const void *optval, size_t optvallen);socket

    參數一:socket句柄;測試

    參數二:socket的模式,這裏由於是客戶端,因此是訂閱模式:ZMQ_SUBSCRIBE;blog

    參數三:訂閱關鍵字;接口

    參數四:參數三的長度;文檔

對於參數三,官方文檔:源碼



該接口必須顯示調用,不然爲不訂閱,測試結果:
char *filter = (argc > 1) ? argv[1] : "";
rc = zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, filter, strlen(filter));
不過濾,會訂閱全部信息;

若是
filter = 「test 」;則訂閱以「test 」爲開頭的信息,中間出現關鍵字的信息不會接收到,(!!測試中,對於關鍵字中的空格「 」,linux徹底匹配,windows下不一樣環境測試結果不一致,待驗證);到這裏PUB-SUB模式在一對多的情景中,可使用了。
相關文章
相關標籤/搜索