ZeroMQ 相關知識

2021-10-06 19:46:56 字數 1815 閱讀 9612

(1)概念:基於訊息佇列的多執行緒網路庫,提供跨越多種傳輸協議的套接字。

(2)常用的三種模式:請求回應模式、發布訂閱模式和管道模式。

(3)zmq_ctx_new():建立乙個新的zmq環境上下文,返回乙個新建立的context控制代碼。

(4)控制代碼:乙個控制代碼是使用唯一的整數值,來標識不同物件和同類中的不同例項,

windows之所以需要設定控制代碼,是記憶體管理機制的問題(虛擬位址),就是資料的位址

需要變動,變動之後需要來記錄管理,系統用控制代碼來記載資料位址的變更。

(5)zmq_socket():void *zmq_socket(void *context,int type)

根據context引數建立zmq套接字,然後以乙個不透明的指標返回建立的socket。

新建立的socket初始值未繫結,沒有和任何終點相連線,為了能夠在socket上新建乙個訊息,

必須使用zmq_connect連線乙個終結點,或者至少使用zmq_bind函式繫結乙個終結點來接收傳入的訊息。

(6)套接字型別:

1.請求回應模型:zmq_req、zmq_rep、zmq_dealer、zmq_router。

2.發布訂閱模式:zmq_pub、zmq_sub、zmq_xpub、zmq_xsub

3.管道模式:zmq_push、zmq_pull、

(7)套接字:是乙個抽象層,實際上是乙個通訊端點,應用程式可以通過它來傳送或者接收資料。

網路套接字是ip位址與埠的組合。兩個應用程式的資料傳輸都要通過套接字來完成。

(8)zmq_connect():int zmq_connect(void *socket const char *endpoint)

將socket連線到節點endpoint上,然後開始接收這個節點上的連線請求。

執行成功時返回0,其他情況返回-1。

(9)zmq_bind():int zmq_bind(void *socket,const char *endpoint)

繫結乙個socket,接收發來的鏈結請求。執行成功時返回0,其他情況返回-1。

(10)zmq_send():int zmq_send(void *socket,void *buf,size_t len,int flags)

在乙個socket(套接字)上傳送乙個訊息幀。根據buf引數指定的記憶體緩衝區和

len引數指定的緩衝區資料長度建立乙個訊息,並新增到訊息佇列中。當zmq_send()執行成功

之時,會返回傳送訊息的位元組數,否則返回-1。

(11)zmq_recv():int zmq_recv(void *socket,void *buf,size_t len,int flags)

zmq_recv()會根據socket引數來接收乙個資訊,並把這個訊息儲存在buffer引數指定的記憶體空間中。

(12)zmq_close():int zmq_close(void *socket)

銷毀socket。

(13)zmq_ctx_destroy():int zmq_ctx_destroy(void *context)

銷毀乙個zmq環境上下文。

(14)zmq_setsockopt():設定zmq socket的屬性。

mysql相關知識 MySQL相關知識

字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...

ZeroMQ 資料彙總

所有分析,基於 2.1.0 的 建立在 socket 之上的 light weight message queue。不再需要自己管理 tcp 分包。簡單 實用。來自 imatix 的乙個庫,imatix 主要面向金融行業。業務邏輯決定設計 最詳細的使用指南 zeromq 的使用 hello 0mq,...

ZeroMQ資料 彙總

所有分析,基於 2.1.0 的 建立在 socket 之上的 light weight message queue。不再需要自己管理 tcp 分包。簡單 實用。來自 imatix 的乙個庫,imatix 主要面向金融行業。業務邏輯決定設計 最詳細的使用指南 zeromq 的使用 hello 0mq,...