ZMQ通訊模式

2022-04-16 09:07:40 字數 691 閱讀 8710

本文簡要介紹zmq常用的通訊模式

zmq_req模式在傳送訊息時,zmq底層會在訊息內容頭部插入乙個空幀,在接收訊息時,會去掉空幀,將內容返回給應用層。

zmq_rep模式在接收訊息時,會將訊息空幀之前的信封幀儲存起來,將空幀之後的內容傳給上層應用。上層應用在響應訊息時,底層會在響應訊息前加上空幀以及對應請求的信封幀。

zmq_router模式在接收訊息時,zmq底層會在訊息頭部新增上乙個信封幀,用於標記****。該信封幀可由傳送端指定(呼叫zmq_setsockopt(zmq_identity)),也可由接收端自動生成唯一標識作為信封幀。在傳送訊息時,將信封幀之後的內容傳送到以信封幀為標識的位址。

zmq_dealer模式,對接收到的訊息公平排隊fair-queue,以round-robin方式傳送訊息。

zmq_sub<--zmq_pub

zmq_push-> [zmq_pull,zmq_push] -->zmq_pull

zmq_pair<-->zmq_pair

zmq 中的cs 模式總結

zmq 中的 cs 模式 zmq 中 的 網路程式設計 server zmq ctx new 建立環境 即啟動執行緒池 初始化一些結構體等等一些預備操作 zmq socket 建立套接字,就是 linux c 中 的socket,zmq bind 繫結位址並對進行監聽 linux c 中是 bind...

不同語言程式 zmq 通訊遇到的問題

工作中用到了golang寫乙個opc 客戶端,從opc server獲取資料,並格式化成內部通用格式,遮蔽外差異。用到了golang的zmq 作為 publish server。以前客戶端是用python寫的,用的是subscribe模式。但是有乙個問題,python 的zmq 的傳送接收有很多方法...

zmq資料發布

現有乙個利用zmq的資料發布api,傳入發布資料時,加鎖將資料放置到鍊錶中,然後設定訊號量。另有乙個執行緒一直迴圈,獲取訊號量,加鎖鏈表,然後將資料傳送出去。該種設計是否與zmq本身的設計理念不符合?替換方案1 傳入發布資料,然後檢視鍊錶是否為空 如果鍊錶不為空,則嘗試將鍊錶中資料傳送,成功則持續傳...