1)場景:
秒殺活動一般會因為流量過大,導致應用掛掉,為了解決這個問題,一般會在應用後端加入訊息佇列。
2)作用:
①:可以控制活動人數,超過一定閾值的訂單直接丟棄(這就是為什麼沒有秒殺成功哦)(業務系統設定閾值,超過閾值限流)
②:可以緩解短時間的高流量壓垮應用(應用程式按照自己的最大能力獲取訂單)
3)描述:
1)場景:
雙11購物節,使用者下訂單之後,訂單系統需要通知庫存系統,傳統的做法是訂單系統呼叫庫存系統的介面
2)缺點:
當庫存系統出現故障時,訂單就會失敗
3)描述耦合,同步:
4)**解耦,非同步:
1)zeromq:擴充套件效能好,開發比較靈活,採用c語言實現,不能持久化,用的較少
2)activemq:歷史悠久的開源專案,在很多專案中使用,但是對佇列數比較多的情況支援不好,容易出現丟失訊息,超過4000的併發,且無法發現問題所在(使用簡單,就是放訊息和取訊息)
3)redis:基於記憶體的k-v資料庫,提供了訊息訂閱服務,可以當做mq使用,目前應用案例較少,且不方便擴充套件
4)rocketmq:阿里巴巴的訊息中介軟體,在其多個產品下使用,可查詢的資料相當少,不全面,10萬次/每秒
5)rabbitmq:結合erlang語言本身的併發優勢,效能較好,管理端頁面功能豐富,訊息延遲微秒級,支援多種語言且支援amqp客戶端
2)通過分析topic exchange 來說明rabbitmq的執行原理
①:topic exchange定義:路由鍵匹配,生產者傳送訊息到topic交換機時,它會根據路由鍵萬用字元匹配去尋找繫結到此交換器上匹配成功的佇列,然後投遞訊息。
rabbitmq的面試題
rabbitmq 的使用場景有哪些?跨系統的非同步通訊,所有需要非同步互動的地方都可以使用訊息佇列。就像我們除了打 同步 以外,還需要發簡訊,發電子郵件 非同步 的通訊方式。應用內的同步變異步,比如訂單處理,就可以由前端應用將訂單資訊放到佇列,後端應用從佇列裡依次獲得訊息處理,高峰時的大量訂單可以積...
RabbitMQ面試題 一
什麼是rabbitmq?答 rabbitmq是實現了高階訊息佇列協議 amqp 的開源訊息 軟體 亦稱面向訊息的中介軟體 生產者把訊息傳送到訊息佇列,消費者去訊息佇列中取訊息消費,實現了服務之間的高度解耦。使用rabbitmq有什麼好處?答 非同步,解耦,削峰填谷 使用rabbitmq有什麼缺點?答...
RabbitMQ面試題概述
rabbitmq是一款開源的,erlang編寫的,基於amqp協議的,訊息中介軟體 rabbitmq是一款開源的,erlang編寫的,基於amqp協議的,訊息中介軟體 可以用它來 解耦 非同步 削峰。解耦,系統a在 中直接呼叫系統b和系統c的 如果將來d系統接入,系統a還需要修改 過於麻煩!非同步,...