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