MQ中消息消費的幾種方式

聊聊mq中消息消費的幾種方式

本章內容

從消費者的角度出發,分析一下消息消費的兩種方式:

  1. push方式
  2. pull方式

push方式

消息消費的過程:

  1. mq接收到消息

  2. mq主動將消息推送給消費者(消費者需提供一個消費接口)

mq屬於主動方,消費者屬於一種被動消費,一旦有消息到達mq,會觸發mq推送機制,將消息推送給消費者,不管消費者處於何種狀態。

優點:

  1. 消費者代碼較少:對於消費者來說,只需提供一個消費接口給mq即可;mq將接收到的消息,隨即推送到指定的消費接口

  2. 消息實時性比較高:對於消費者來說,消息一旦到達mq,mq會立即推送給消費者

缺點:

1.消費者屬於被動方,消息量比較大時,對消費者性能要求比較高;若消費者機器資源有限,可能會導致壓力過載,引發宕機的情況。

2.對消費者可用性要求比較高:當消費者不可用時,會導致很push失敗,在mq方需要考慮至少推送成功一次,這塊的設計下章節會做說明。

pull方式

消息消費的過程:

1.消費端採用輪詢的方式,從mq服務中拉取消息進行消費

2.消費完成通知mq刪除已消費成功的消息

3.繼續拉取消息消費

對於消費者來說,是主動方,可以採用線程池的方式,根據機器的性能來增加或縮小線程池的大小,控制拉取消息的速度,可以很好的控制自身的壓力。

優點:

1.消費者可以根據自己的性能主動控制消息拉去的速度,控制自己的壓力,不至於把自己弄跨

2.實時性相對於push方式會低一些

3.消費者屬於主動方,控制權更大一些

缺點:

1.消費方需要實現消息拉取的代碼

2.消費速度較慢時,可能導致mq中消息積壓,消息消費延遲等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章