大廠面試系列(九):MQ和分散式事務
阿新 • • 發佈:2020-11-12
MQ和分散式事務
MQ
- 專案中RabbitMQ實現了at least once,包括mq反饋provider,訊息持久化,consumer主動反饋mq.執行緒池消費防止訊息積壓等
- mq 通知時,消費者沒消費到怎麼辦
- 簡單聊聊訊息中介軟體?
- 你瞭解那些具體的訊息中介軟體產品?
- mq的消費端是怎麼處理的? 整理一下你的消費端的整個處理邏輯流程,然後說說你的ack是在哪裡返回的。按照你這樣畫的話,如果資料庫突然宕機,你的訊息該怎麼確認已經接收? 那如果傳送端的服務是多臺部署呢?你儲存訊息的時候資料庫就一直報唯一性的錯誤?
- rocketmq用在什麼場景。 如果消費者組A下面有兩個消費者組A1,A2,問消費者A1和A2能否消費不同的topic ?rocketmq如何保證的事務。
- kafka,activemq,rabbitmq,rocketmq都有什麼優點,缺點啊?
- 如果讓你寫一個訊息佇列,該如何進行架構設計啊?說-下你的思路
- 用過哪些MQ,怎麼用的,和其他mq比較有什麼優缺點,MQ的連線是執行緒安全的嗎 ?MQ系統的資料如何保證不丟失
- mq 通知時,消費者沒消費到怎麼辦
- mq的p2p模式
- mq訊息的冪等性如何保證? mq如何保證順序消費?
- MQ怎樣保證訊息的可靠性以及當時如何做訊息冪等處理的
- 如何確保訊息正確地傳送至RabbitMQ? 如何確保訊息接收方消費了訊息? 如何避免訊息重複投遞或重複消費? 訊息基於什麼傳輸? 訊息如何分發? 訊息怎麼路由? 如何確保訊息不丟失? 使用RabbitMQ有什麼好處? rabbitmq的叢集。 mq的缺點
分散式事務
首先來一個具體的解決方案的示例
* 1、兩階段提交(2PC) 第一階段:事務協調器要求每個涉及到事務的資料庫預提交(precommit)此操作,並反映是否可以提交. 第二階段:事務協調器要求每個資料庫提交資料。 優點: 儘量保證了資料的強一致,適合對資料強一致要求很高的關鍵領域。(其實也不能100%保證強一致) 缺點: 實現複雜,犧牲了可用性,對效能影響較大,不適合高併發高效能場景,如果分散式系統跨介面呼叫,目前 .NET 界還沒有實現方案。 * 2、補償事務(TCC) 針對每個操作,都要註冊一個與其對應的確認和補償(撤銷)。Try、Confirm、Cancel 優點: 跟2PC比起來,實現以及流程相對簡單了一些,但資料的一致性比2PC也要差一些 缺點: 缺點還是比較明顯的,在2,3步中都有可能失敗。TCC屬於應用層的一種補償方式,所以需要程式設計師在實現的時候多寫很多補償的程式碼,在一些場景中,一些業務流程可能用TCC不太好定義及處理。 * 3、本地訊息表(非同步確保) 核心思想是將分散式事務拆分成本地事務進行處理,訊息生產方,需要額外建一個訊息表,並記錄訊息傳送狀態。訊息表和業務資料要在一個事務裡提交,也就是說他們要在一個數據庫裡面。然後訊息會經過MQ傳送到訊息的消費方。如果訊息傳送失敗,會進行重試傳送。 優點: 一種非常經典的實現,避免了分散式事務,實現了最終一致性。在 .NET中 有現成的解決方案。 缺點: 訊息表會耦合到業務系統中,如果沒有封裝好的解決方案,會有很多雜活需要處理。 * 4、MQ事務訊息 RocketMQ支援,RabbitMQ 和 Kafka 都不支援,一次傳送訊息和一次確認訊息,生產方需要實現一個check介面(確認訊息或者回滾) 優點: 實現了最終一致性,不需要依賴本地資料庫事務。 缺點: 實現難度大,主流MQ不支援,沒有.NET客戶端,RocketMQ事務訊息部分程式碼也未開源。 * 5、Sagas事務模型 長時間執行的事務,該模型其核心思想就是拆分分散式系統中的長事務為多個短事務,或者叫多個本地事務,然後由 Sagas 工作流引擎負責協調,如果整個流程正常結束,那麼就算是業務成功完成,如果在這過程中實現失敗,那麼Sagas工作流引擎就會以相反的順序呼叫補償操作,重新進行業務回滾。
- 分散式事務瞭解嗎?有哪些處理方法?
- 專案中有分散式事務處理嗎?有哪些常見的分散式事務處理方式?說一下你們在專案中怎麼用的。
- 分散式情況下如何保證事務。 如何設計實現一個分散式事務
- 分散式事務的各種方案及你的最佳方案
- 分散式事務是什麼
- 什麼是分散式事務?分散式事務如何保證資料一致性?
- 分散式事務知道嗎?你們怎麼解決的?TCC?那若出現網路原因,網路連不通怎麼辦啊
- 對分散式事務的理解
- 分散式事務的原理,如何使用分散式事務
- 多個服務之間呼叫的資料一致性問題,A服務中呼叫B服務 、C服務,B成功 C失敗怎麼解決? 其實歸根到底就是分散式事務的資料一致性解決方案,失敗了資料怎麼回滾
- 分散式事務的實現方式,分散式鎖,分散式一致性,redis分散式鎖;
- 分散式事務瞭解嗎?你們專案中都用到了哪些分散式事務?都有哪些優缺點?
- 簡單實現分散式事務
歡迎搜尋關注本人與朋友共同開發的微信面經小程式【大廠面試助手】和公眾號【微瞰技術】