高可用架構
05-07
記得剛工作時,閱讀過一本書《淘寶技術這十年》,記得「正明」提及架構的時候,說到高可用三個字,當時覺得模模糊糊。現在就回答一下當年的自己。
the proportion of time a system is in a functioning condition.
If a user cannot access the system, it is said to be unavailable.Availability = uptime / (uptime + downtime)
高可用(High Availability)是指減少不可用的時間。如果系統能一直提供服務,那麼可用性是100%。現在很多公司要求可用是99.99%,那麼一年中大約有50多分鐘是不可用的。
保證可用性的方法——冗餘。比如集群中的master-slaves,當master壞了,slaves能頂上來。這個工作不能依賴人工干預,而是依靠自動故障轉移機制。比如redis的sentinels和clusters就是如此。
很多資料庫也是主從結構。當slave宕機時,資料庫連接池會讀請求路由到冗餘的讀庫,這對調用方是透明的。如果是master壞了呢?可以設計兩個master,一個對線上提供服務,另一個冗餘保證高可用,常見實踐是keepalived + virtual IP自動故障轉移。
更全面的解讀:究竟啥才是互聯網架構「高可用」
推薦閱讀:
※秒殺系統優化思路
※推薦一篇技術乾貨,關於數據分析平台的架構與設計
※Windows Server 2008 智能 DNS Server 部署指南
※調用第三方介面的架構優化
※自助結帳,揭開新零售市場的龐大商機
TAG:系統架構 |