40 分布式系統中的介面呼叫如何保證順序性?

2021-09-10 01:27:14 字數 860 閱讀 6113

目錄

1、面試題

2、面試官心裡分析

3、面試題剖析

分布式服務介面請求的順序性如何保證?

其實分布式系統介面的呼叫順序,也是個問題,一般來說是不用保證順序的。但是有的時候可能確實是需要嚴格的順序保證。給大家舉個例子,你服務a呼叫服務b,先插入再刪除。好,結果倆請求過去了,落在不同機器上,可能插入請求因為某些原因執行慢了一些,導致刪除請求先執行了,此時因為沒資料所以啥效果也沒有;結果這個時候插入請求過來了,好,資料插入進去了,那就尷尬了。

本來應該是先插入 -> 再刪除,這條資料應該沒了,結果現在先刪除 -> 再插入,資料還存在,最後你死都想不明白是怎麼回事。

所以這都是分布式系統一些很常見的問題

首先,一般來說,我個人給你的建議是,你們從業務邏輯上最好設計的這個系統不需要這種順序性的保證,因為一旦引入順序性保障,會導致系統複雜度上公升,而且會帶來效率低下,熱點資料壓力過大,等問題。

下面我給個我們用過的方案吧,簡單來說,首先你得用dubbo的一致性hash負載均衡策略,將比如某乙個訂單id對應的請求都給分發到某個機器上去,接著就是在那個機器上因為可能還是多執行緒併發執行的,你可能得立即將某個訂單id對應的請求扔乙個記憶體佇列裡去,強制排隊,這樣來確保他們的順序性。

但是這樣引發的後續問題就很多,比如說要是某個訂單對應的請求特別多,造成某台機器成熱點怎麼辦?解決這些問題又要開啟後續一連串的複雜技術方案。。。曾經這類問題弄的我們頭疼不已,所以,還是建議什麼呢?

最好是比如說剛才那種,乙個訂單的插入和刪除操作,能不能合併成乙個操作,就是乙個刪除,或者是什麼,避免這種問題的產生。

如何保證分布式系統中介面呼叫的順序性?

如何保證分布式系統中介面呼叫的順序性?分布式是當下比較流行的乙個話題,很多大型的網際網路公司都是分布式系統,將乙個大而全的系統拆分成多個小而精的乙個個的功能單 一 職責集中的子系統,系統之間通過約定好的協議 規則進行呼叫,降低系統之間的耦合度,避免牽一髮而動全身。雖然分布式系統的架構有很多的好處,但...

分布式系統漫談 拾肆 分布式系統常用優化思路

本文說說系統優化的常用手段吧,其中可能有一些內容在系列前面的文章裡已經總結過了,這裡還是再系統地整理出來,方便將知識彙總,有個整體上的認識。本文只講方 沒有具體實現。限於水平總結得可能不全,後面還會補充。本文將系統主要分為前端優化和架構優化兩個層面來說。前端優化 1.頁面優化 延遲載入 對一些還沒有...

3 1 分布式檔案系統

檔案系統 定義 一種儲存和組織計算機資料的方法,利用抽象的檔案和目錄代替了電腦硬碟或者光碟使用資料塊的概念 原理 檔案系統將硬碟空間以塊為單位進行劃分,每個檔案都佔據若干塊,然後通過乙個檔案控制塊 file control block 記錄每個檔案佔據的硬碟資料塊 單機式檔案系統 定義 將檔案存在本...