消息隊列-消息隊列有什麼優點和缺點?

面試連環炮

 

優點上面已經說了:解耦、異步、削峯,缺點呢?顯而易見的

  • 系統可用性降低:系統引入的外部依賴越多,越容易掛掉,本來你就是A系統調用BCD三個系統接口就好了,人家ABCD四個系統好好的,沒啥問題,這個時候卻加入了MQ進來,萬一MQ掛了怎麼辦?MQ掛了整套系統也會崩潰了。
  • 系統複雜性提高:硬生生加個MQ進來,你怎麼保證消息沒有重複消費?怎麼處理消息丟失的情況?怎麼保證消息傳遞的順序性?
  • 一致性問題:A系統處理完了直接返回成功了,人都以爲你的請求成功了,但是問題是,要在BCD三個系統中,BD兩個系統寫庫成功了,結果C系統寫庫失敗了,這樣就會存在數據不一致的問題。
  • 所以說消息隊列實際上是一種複雜的架構,你引入它有好多好處,但是也得針對它帶來的壞處做各種額外的技術方案和架構來規避掉,最後發現系統複雜性提升了一個數量級,也許是複雜10倍,但是關鍵時刻,用還是得用。

image-20200420070841754

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