對mq了解不是很多的,可以看一下下面兩篇文章:
從消費(fèi)者的角度出發(fā),分析一下消息消費(fèi)的兩種方式:
mq接收到消息
mq屬于主動方,消費(fèi)者屬于一種被動消費(fèi),一旦有消息到達(dá)mq,會觸發(fā)mq推送機(jī)制,將消息推送給消費(fèi)者,不管消費(fèi)者處于何種狀態(tài)。
消費(fèi)者代碼較少:對于消費(fèi)者來說,只需提供一個消費(fèi)接口給mq即可;mq將接收到的消息,隨即推送到指定的消費(fèi)接口
1.消費(fèi)者屬于被動方,消息量比較大時,對消費(fèi)者性能要求比較高;若消費(fèi)者機(jī)器資源有限,可能會導(dǎo)致壓力過載,引發(fā)宕機(jī)的情況。
2.對消費(fèi)者可用性要求比較高:當(dāng)消費(fèi)者不可用時,會導(dǎo)致很push失敗,在mq方需要考慮至少推送成功一次,這塊的設(shè)計下章節(jié)會做說明。
1.消費(fèi)端采用輪詢的方式,從mq服務(wù)中拉取消息進(jìn)行消費(fèi)
2.消費(fèi)完成通知mq刪除已消費(fèi)成功的消息
3.繼續(xù)拉取消息消費(fèi)
對于消費(fèi)者來說,是主動方,可以采用線程池的方式,根據(jù)機(jī)器的性能來增加或縮小線程池的大小,控制拉取消息的速度,可以很好的控制自身的壓力。
1.消費(fèi)者可以根據(jù)自己的性能主動控制消息拉去的速度,控制自己的壓力,不至于把自己弄跨
2.實(shí)時性相對于push方式會低一些
3.消費(fèi)者屬于主動方,控制權(quán)更大一些
1.消費(fèi)方需要實(shí)現(xiàn)消息拉取的代碼
2.消費(fèi)速度較慢時,可能導(dǎo)致mq中消息積壓,消息消費(fèi)延遲等
消費(fèi)者性能較好,對實(shí)時性要求比較高的,可以采用push的方式
消費(fèi)者性能有限,建議采用pull的方式
整體上來說,主要在于消費(fèi)者的性能,機(jī)器的性能如果沒有問題,push和pull都是可以的
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。