高可用系統,就是說要保證系統在幾乎任務時候都要有正常運行,功能正常。
我們來看下哪些情況會造成系統不可用。
單機系統下的可用性問題,從nginx->tomcat->db/soa來看,單點問題會影響系統高可用,比如要是這個這個鏈路上其中一個單點掛了,那么整個系統都不可用了。所以引申出來主備/集群模式,防止單點問題。
高并發場景下,請求過多也會因為后端瓶頸點引起整個系統down掉,所以一般情況下應對高并發場景我們會限流,比如英雄聯盟搶票,周杰倫搶票。
通過采用mq等隊列形式削峰,保證后端系統不會down掉。
熔斷機制。
容災機制,多機房部署。
綜上所述:
主備/集群模式,防止單點故障;
限流,削峰,防止后端壓力過大;
熔斷機制,類似與限流;
容災機制,多機房/異地部署。