高可用、高併發淺析
概念解析:
高可用HA(High Availability)是分佈式系統架構中必須考慮的因素之一,它一般是指,經過設計減小系統不能提供服務的時間 。 假設系統一直可以提供服務,那麼該系統的可用性是100%。若是系統每運行100個時間單位,會有1個時間單位沒法提供服務,那麼該系統的可用性是99%。
高併發(High Concurrency)是互聯網分佈式系統架構設計中必須考慮的因素之一,它一般是指,經過設計保證系統可以同時並行處理不少請求 。高併發相關經常使用的一些指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS(Query Per Second),併發用戶數等。
如何實現:
高可用HA的實現。方法論上,高可用保證的原則是「集羣化」,或者叫「冗餘」: 只有一個單點,掛了服務會受影響;若是有冗餘備份,掛了還有其餘backup可以頂上。有了冗餘以後,還不夠,每次出現故障須要人工接入恢復勢必會增長系統的不可服務時間。因此,有每每是經過「自動故障轉移」來實現系統的高可用 。 總結:經過冗餘+自動故障轉移 來保證系統的高可用特性。
高併發的實現。互聯網分佈式架構設計,提升系統併發能力的方式,方法論上主要有兩種:垂直擴展(Scale Up)與水平擴展(Scale Out) 。垂直擴展 :提升單機處理能。垂直擴展的方式有兩種: (1)加強單機硬件性能。例如:增長CPU核數如32核,網卡如萬兆,硬盤如SSD,內存等。 (2)提高單機架構性能。例如:使用Cache來減小IO次數,使用異步來增長單服務吞吐量,使用無鎖數據結構來減小響應時間;水平擴展 :只是增長服務器數量,就能線性擴充系統性能。水平擴展對系統架構設計是有要求的,如何在架構各層進行可水平擴展的設計,以及互聯網公司架構各層常見的水平擴展實踐,詳細見參考文獻【2】。
參考文獻:
究竟啥纔是互聯網架構「高可用」
究竟啥纔是互聯網架構「高併發」
歡迎關注本站公眾號,獲取更多信息