centos7虛擬機(jī)安裝rabbitmq反應(yīng)慢 rabbitmq延遲隊(duì)列原理?
rabbitmq延遲隊(duì)列原理?延遲隊(duì)列最重要的特征是它的延遲特性。隊(duì)列內(nèi)部是有序的,延遲隊(duì)列中的消息預(yù)計(jì)在指定時(shí)間之前或之后。1.如果用戶下單,十分鐘內(nèi)沒有付款,訂單會自動取消。2.如果十天內(nèi)沒有商品
rabbitmq延遲隊(duì)列原理?
延遲隊(duì)列最重要的特征是它的延遲特性。隊(duì)列內(nèi)部是有序的,延遲隊(duì)列中的消息預(yù)計(jì)在指定時(shí)間之前或之后。
1.如果用戶下單,十分鐘內(nèi)沒有付款,訂單會自動取消。
2.如果十天內(nèi)沒有商品上架,發(fā)消息提醒新創(chuàng)建的店鋪。
3.如果用戶注冊賬號成功后半個月沒有登錄,會發(fā)送消息提醒。
4.用戶發(fā)起退款,三天內(nèi)未處理,會發(fā)消息通知相關(guān)運(yùn)營商處理。
5.預(yù)定會議結(jié)束后,需要在預(yù)定時(shí)間前十分鐘通知所有與會者參加。
以上場景都有一個特點(diǎn),就是一個任務(wù)需要在某個時(shí)間之前或之后完成,比如訂單產(chǎn)生的時(shí)間,十分鐘后需要查看訂單的支付狀態(tài)。如果訂單尚未支付,則需要關(guān)閉訂單。理論上,我們總是通過一個預(yù)定的任務(wù)輪詢數(shù)據(jù),每秒檢查一次,十分鐘后取出所有未支付的訂單,然后關(guān)閉。如果數(shù)據(jù)量很小,使用定時(shí)任務(wù)確實(shí)是個不錯的選擇。但是,如果數(shù)據(jù)量比較大呢?輪詢大量數(shù)據(jù)對數(shù)據(jù)庫壓力很大,實(shí)時(shí)性不好(輪詢大量數(shù)據(jù)需要時(shí)間),無法滿足業(yè)務(wù)需求,性能較低。在這種情況下,我們可以使用RabbitMQ 延遲隊(duì)列。
rabbitmq優(yōu)勢?
優(yōu)點(diǎn):支持集群,高可用的部署架構(gòu),高可靠的消息支持。
復(fù)雜系統(tǒng)的解耦;
復(fù)雜鏈接的異步調(diào)用
瞬時(shí)峰值的削峰。
這里要提一下Rock
rabbitmq比較好的書籍?
Rabbitmq中文名消息隊(duì)列
描述AMQP協(xié)議實(shí)現(xiàn)的書RabbitMQ "很好理解。前兩章可以讓一個沒有AMQP和RabbitMQ基礎(chǔ)的人了解常用的概念、組件、消息隊(duì)列流程等。,并且在描述概念時(shí)給出的例子也是合適的(比如在描述交換的主題類型時(shí)使用的郵件分類的例子)。
在談?wù)摳拍詈土信e例子時(shí),我們經(jīng)常可以看到作者 并告訴讀者相關(guān)元素的適用場景和范圍。P.S .這是我認(rèn)為國內(nèi)很多技術(shù)書(尤其是羅剛)所欠缺的。