ZeroMQ 推拉模式

2021-10-25 20:09:14 字數 1387 閱讀 5832

推拉模式,push傳送,send。pull方接收,recv。push可以和多個pull建立連線,push傳送的資料被順序傳送給pull方。比如你push和三個pull建立連線,分別是a,b,c。push傳送的第一資料會給a,第二資料會給b,第三個資料給c,第四個資料給a。一直這麼迴圈。

推拉模式可分為三層,最上是產生任務的 分發者 ventilator,中間是執行者 worker,下面是收集結果的接收者 sink。

ventilator.cpp

#include

#include

#include

#include

#include

#include

#include

#include

intmain

(void

)zmq_close

(sender)

;zmq_ctx_destroy

(context)

;return0;

}

work.cpp

#include

#include

#include

#include

#include

intmain

(void

)printf

("buffer:%s\n"

,buffer)

;const

char

* replymsg =

"world"

;zmq_send

(sender, replymsg,

strlen

(replymsg),0

);//printf

("[server] sended reply message content == \"%s\"\n"

, replymsg);}

zmq_close

(recviver)

;zmq_close

(sender)

;zmq_ctx_destroy

(context)

;return0;

}

sink.cpp

#include

#include

#include

#include

#include

intmain

(void

)printf

("buffer:%s\n"

,buffer);}

zmq_close

(socket)

;zmq_ctx_destroy

(context)

;return0;

}

推拉模式與觀察者模式

最近做乙個訊息系統,其中涉及到新訊息數的即時更新,當時就想到了觀察者模式,後來聽同事提到推拉模式,感覺推模式原理上應該還是屬於觀察者模式,只不過把server變成了被觀察物件,client被動觀察 其實推拉模式我們經常遇到,如廣播 推 http請求 拉 只是沒有刻意去追求概念。設計時還是應該多考慮到...

RocketMQ訊息消費方式 推拉模式

rocketmq訊息消費本質上是基於的拉 pull 模式,consumer主動向訊息伺服器broker拉取訊息。consumer被分為2類 mqpullconsumer和mqpushconsumer,其實本質都是拉模式 pull 即consumer輪詢從broker拉取訊息。區別 mqpushcon...

RocketMQ訊息消費方式 推拉模式

rocketmq訊息消費本質上是基於的拉 pull 模式,consumer主動向訊息伺服器broker拉取訊息。consumer被分為2類 mqpullconsumer和mqpushconsumer,其實本質都是拉模式 pull 即consumer輪詢從broker拉取訊息。區別 mqpushcon...