建設乙個高可用高效能的系統是我最近幾年的努力目標,但其中涉及的內容頗多,都是些零星的經驗,缺乏系統性架構總結。寫這個系列的文章其實是我一直以來的想法,不過題材和內容過多,所以一直擱置。前些日子到一家公司面試,備受打擊,覺得有必要把它總結一下。
我假定要為**交易建設乙個高可用高效能的系統,那麼**交易就是系統應用場景。**交易的諸多規則我們沒有必要理會,我們只需要簡化出乙個交易場景,需要使用高可用高效能的系統。之所以選擇**交易,是因為現在正供職於一家**交易系統軟體提供商,而且**交易也需要這樣的系統。
我們假設的場景是這樣的。有家**經紀公司,需要為他的很多客戶提供**交易介面,這個介面需要連線到多個交易所。每個客戶都希望以最短的時間從交易所那裡獲取**,並提交交易合約。由於**交易是t+0原則,所以延時和中斷,都可能導致交易失敗和大量的經濟損失。每筆交易涉及金額可能十分巨大,千萬甚至億級別,所以不允許任何資料上的差錯。
上面的場景對全年不一定要求無中斷,但在交易時間內對可用性要求同樣苛刻。交易的實時性,對效能要求也是很高的。於是,為**交易的場景建立高可用高效能的系統從應用需求角度來看,是完全足備的。
當客戶來到交易終端前,用自己的賬戶登入系統,查詢下自己的資金,如果不夠,那麼需要轉入更多的資金到經紀公司賬戶。介面上不斷重新整理各種合約以及新的**,在合適的**和合約出現時,這個客戶期待以最快的速度吃下他,並期望能夠獲得馬上的成交。
可是,當客戶提交交易請求時,經紀公司需要知道這個客戶是否有足夠的資金,否則經紀公司必然承當巨大的經紀損失。對於客戶來說,當然希望這個過程足夠短,否則就無法成交。
經紀公司的管理人員需要知道現在有多少人在交易,成交了多少筆。每個客戶是否把風險控制在可接受範圍內。在**失控的時候,我們需要讓經紀公司在最短的時候內作出反映,以減少損失。
高可用高效能系統(二)系統異常場景
一 網路故障 當客戶正在交易時,突然網路發生異常,導致無法繼續連線到網路上。這個場景是最可能發生的。我們需要在網路發生的時候,讓客戶能夠繼續進行這個交易。二 效能故障 由於機器效能或者軟體效能的緣故,可能會導致我們在某個業務處理過程中耗費大量時間,比如資料庫查詢。但是這也不應該影響我們進行繼續交易。...
高效能,高可用系統架構
本文是學習大型分布式 架構的技術總結。對架構乙個高效能,高可用,可伸縮,可擴充套件的分布式 進行了概要性描述,並給出乙個架構參考。一部分為讀書筆記,一部分是個人經驗總結。對大型分布式 架構有很好的參考價值。1 大型 的特點 2 大型 架構目標 3 大型 架構模式 4 高效能架構 以使用者為中心,提供...
高效能高併發系統架構(一)
在網際網路高速發展,資料海量儲存的時代,構架高效能 高可用性的應用支撐大量併發訪問,在現代物聯網 網際網路架構時代是至重要的。穩定而又可以水平擴充套件的架構是應用程式執行的基礎。下面開始介紹個人在架構方面多年經驗的總結。1 架構分類 架構分為硬體架構 軟體架構和演算法架構 通過需求分析,定位目標使用...