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