訊息佇列的靈魂拷問,你能過幾關?

2021-10-04 21:48:55 字數 1285 閱讀 9851

訊息佇列分布式系統中重要的元件,一種存放訊息的容器,主要作用有解耦、非同步、削鋒,是大型分布式系統不可缺少的中介軟體。

常見的訊息佇列有 activemq,rabbitmq,rocketmq,kafka。

簡歷中涉及到了訊息佇列,面試官先問了這樣幾個問題:

你們系統裡為什麼要使用訊息佇列?

既然使用了訊息佇列,說說他還有什麼使用場景?

訊息佇列的優缺點是什麼?

我的回答:甲方提供 eos 充值服務,我方進行呼叫。出於解耦的目的,引入了訊息佇列。

乙個類似應試的回答方法,就是思考面試官問這個問題是出於什麼目的,想獲得的是什麼樣的答案?

當問到為什麼使用訊息佇列時,面試官期望的回答是公司的 *** 業務遇到了挑戰,不用 mq 會有麻煩,使用 mq 之後帶來了好處。

通過乙個問題就能看出是為了用而用,還是經過思考之後使用。

問訊息佇列的使用場景,和問訊息佇列有什麼優點,訊息佇列有什麼作用是等價的。

訊息佇列的作用主要有三個解耦、非同步、削峰

b,c,d 系統需要使用 a 系統產生的關鍵資料。

有訊息佇列時

使用者請求資料時,系統的響應時間是保證使用者體驗很重要的一部分。

用訊息佇列時

秒殺場景下,每秒有 5000 個請求,mysql 每秒最大處理 2000 條 sql。

有訊息佇列時系統 b、c、d

優點前面已經說過了,還需要討論一下缺點。

凡事都有兩面性,如果只是考慮到訊息佇列的優點,而沒有考慮缺點,這就是乙個潘多拉的魔盒。開啟魔盒,接踵而來的會是一系列的意外。

推廣到引入其他技術亦然,只有考慮到缺點之後才可以採取額外的技術方案或者架構來規避這些缺點。

面試官問到 mq 的時候,希望考察我們在使用 mq 的時候是否有過自己的思考。沒有完美的技術,任何技術都具有兩面性,要考慮它的使用場景,並且對可能遇到的風險做到心中有數,提前預防。

引入訊息佇列之後:

靈魂拷問 如何提高系統的效能?

昨天發現了系統的效能問題,於是乎開發人員問我,你有好的建議嗎?我竟然一臉懵逼。看來,多讓別人提問你可以提高自己的水平,於是本人陷入沉思,如何該提高系統的效能?容哀家好好思考一番 一般來講,系統是由哪幾個方面組成的?資料庫 應用 網路組成的,那應該從這三方面去定位和提公升。資料的處理 資料備份 資料離...

靈魂拷問 說說你對前端的理解

大多數人對前端的認識可能是寫點簡單的 html,css 樣式,製作點網頁介面,其實不然。2005 年之前,前端開發這個詞還是很少見的,尤其在國內。但近幾年的前端可謂是飛速發展,在沒有前端崗位之前,乙個專案中負責後台功能邏輯處理的 和前端頁面展示 混在一起,不免會給開發和維護帶來各種問題,漸漸的許多大...

大資料開發 Spark 拷問靈魂的5個問題

把磁碟上的500g資料分割為100塊 chunks 每份5gb。注意,要留一些系統空間!順序將每份5gb資料讀入記憶體,使用quick sort演算法排序。把排序好的資料 也是5gb 存放回磁碟。迴圈100次,現在,所有的100個塊都已經各自排序了。剩下的工作就是如何把它們合併排序!從100個塊中分...