隊列消息分為2種:
- 基本模型(SimpleQueue)、工作模型(WorkQueue)
隊列消息特點:
- 消息不會丟失 并且 有先進(jìn)先出的順序。
- 消息接收是有順序的,不是隨機的,僅有一個消費者能拿到數(shù)據(jù),而且不同消費者拿不到同一份數(shù)據(jù)。
基本模型: SimpleQueue
在上圖的模型中,有以下幾個概念:
- P:為生產(chǎn)者,也就是要發(fā)送消息的程序
- C:為消費者:消息的接受者,會一直等待消息到來。
- queue:為消息隊列,為上圖中間紅色部分。類似為一個郵箱,可以緩存消息,生產(chǎn)者向其中投遞消息,消費者從其中取出消息。
適用場景:基本模型適用于 消息存取 數(shù)量不多,頻率不高。
工作模型: WorkQueue
WorkQueue簡單來說就是讓多個消費者綁定到一個隊列,共同消費隊列中的消息。
弊端:
? 當(dāng)消息處理比較耗時的時候,可能生產(chǎn)消息的速度會遠(yuǎn)遠(yuǎn)大于消息的消費速度。長此以往,消息就會堆積越來越多,無法及時處理。那么這時就可以用WorkQueue模型,多個消費者共同處理消息,處理消息的速度就能大大提高了。
?工作模型它默認(rèn)分配模式是 平均分配給每個消費者,并沒有考慮到消費者的處理能力。這樣顯然是有問題的。有的消費者性能高,有的消費者性能低。如果兩個消費者都消費同樣的消息,那么就會造成一個消費的快些一個消費的慢些,因為性能高的消費者它的消費能力要強些,性能低的消費者消費能力要弱些。
?當(dāng)然默認(rèn)的平均分配模式也可以在消費者的配置文件中更改為能者多勞模式,能力強的多干點,能力弱的少干點。文章來源:http://www.zghlxwxcb.cn/news/detail-704651.html
適用場景:工作模型適用于 消息存取 數(shù)量多,頻率高。文章來源地址http://www.zghlxwxcb.cn/news/detail-704651.html
到了這里,關(guān)于RabbitMq消息模型-隊列消息的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!