RabbitMQ的面試題

一:什麼是削峯限流(控制流量)

1)場景:
秒殺活動一般會因爲流量過大,導致應用掛掉,爲了解決這個問題,一般會在應用後端加入消息隊列。
2)作用:
①:可以控制活動人數,超過一定閾值的訂單直接丟棄(這就是爲什麼沒有秒殺成功哦)(業務系統設置閾值,超過閾值限流)
②:可以緩解短時間的高流量壓垮應用(應用程序按照自己的最大能力獲取訂單)
3)圖片描述:
在這裏插入圖片描述

二:什麼是應用解耦和異步(系統與系統之間通過第三方實現通信,無直接引用關係,從而引出消息隊列)

1)場景:
雙11購物節,用戶下訂單之後,訂單系統需要通知庫存系統,傳統的做法是訂單系統調用庫存系統的接口
2)缺點:
當庫存系統出現故障時,訂單就會失敗
3)圖片描述耦合,同步:
在這裏插入圖片描述
4)圖解解耦,異步:
在這裏插入圖片描述

三:爲什麼選型RabbitMQ

1)ZeroMQ:擴展性能好,開發比較靈活,採用C語言實現,不能持久化,用的較少
2)ActiveMQ:歷史悠久的開源項目,在很多項目中使用,但是對隊列數比較多的情況支持不好,容易出現丟失消息,超過4000的併發,且無法發現問題所在(使用簡單,就是放消息和取消息)
3)redis:基於內存的K-V數據庫,提供了消息訂閱服務,可以當做MQ使用,目前應用案例較少,且不方便擴展
4)RocketMQ:阿里巴巴的消息中間件,在其多個產品下使用,可查詢的資料相當少,不全面,10萬次/每秒
5)RabbitMQ:結合erlang語言本身的併發優勢,性能較好,管理端頁面功能豐富,消息延遲微秒級,支持多種語言且支持AMQP客戶端

四:RabbitMQ的核心原理

1)RabbitMQ的交換機綁定方式(會在下一篇文章中重點介紹這幾種交換機的應用):
①:Topic Exchange
②:Direct Exchange
③:Fanout Exchange
④:Header Exchange(基本上不用了)

2)通過分析Topic Exchange 來說明RabbitMQ的運行原理
①:Topic Exchange定義:路由鍵匹配,生產者發送消息到Topic交換機時,它會根據路由鍵通配符匹配去尋找綁定到此交換器上匹配成功的隊列,然後投遞消息。
②:圖解:
在這裏插入圖片描述

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