不要把雞蛋都放在同一籃子裡
標準:1 正常情況下,使用者無論訪問哪乙個地點的業務系統,都能夠得到正確的業務服務。
2 某個地方業務異常的時候,使用者訪問其他地方正常的業務系統,能夠得到正確的業務服務。
與「活」對應的是字是「備」,備是備份,正常情況下對外是不提供服務的,如果需要提供服務,則需要大量的人工干預和操作,花費大量的時間才能讓「備」變成「活」。
活能更好的進行容災 保證更高的可用性 而備則需要更多的啟動或者選舉時間 如為核心鏈路,此段時間將會造成鉅額損失。
實現高可用也會帶來巨大的代價:
1 系統複雜度上公升
2 成本上公升
因此只有核心的業務才需要進行高可用改造。
按照地理位置距離劃分,異地多活架構可分為 1 同城異區 2 跨城跨地 3 跨國異地
1 同城異區:
在同一城市距離較遠的地方部署兩個集群,共同提供讀寫服務,兩集群間通過專線網路進行同步。
出現城市級別災難時,無法滿足高可用。
但在同一城市,能夠在較短時間內完成資料同步,保證資料的一致性。但對於機房火災,停電等能很好應對。
2 跨城異地:
業務部署在不同城市的多個機房,而且距離最好要遠一些。 比如 北京與深圳
在距離上比較遠,才能有效應對這類極端災難事件。比如山洪 、**等極端災害
距離增加帶來的最主要問題是兩個機房的網路傳輸速度會降低
業務系統需要考慮部署在不同地點的兩個機房,在資料短時間不一致的情況下,還能夠正常提供業務。這就引入了乙個看似矛盾的地方:資料不一致業務肯定不會正常,但跨城異地肯定會導致資料不一致。
尤其涉及到rmb 的業務 雙寫無法保證一致性,必然會帶來問題。
支付寶等金融相關的系統,對餘額這類資料,一般不會做跨城異地的多活架構,而只能採用同城異區這種架構。
對資料一致性要求不那麼高,或者資料不怎麼改變,或者即使資料丟失影響也不大的業務,跨城異地多活就能夠派上用場了。例如,使用者登入(資料不一致時使用者重新登入即可)
3. 跨國異地
grafana高可用架構
grafana的高可用主要通過這兩項類保證 alerting目前還不支援高可用配置 database either mysql postgres or sqlite3 it s your choice type mysql host 192.168.99.100 3306 name grafana ...
Redis高可用架構
官網 解壓 tar zxvf redis 5.0.5.tar.gz 切換目錄 cd redis 3.2.9,執行編譯命令 make 切換到 redis 3.2.9 src 目錄執行命令 vim redis.conf protected mode no bind 127.0.0.1 daemonize...
Twitter 高併發高可用架構
解決 twitter的 問題 就像玩玩具一樣,這是乙個很有趣的擴充套件性比喻。每個人都覺得 twitter很簡單,乙個菜鳥架構師隨便擺弄一下個可伸縮的 twitter就有了,就這麼簡單。然而事實不是這樣,twitter的工程副總裁 raffi krikorian細緻深入的描述了在 twitter在可...