高可用系統(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ā)場(chǎng)景下,請(qǐng)求過多也會(huì)因?yàn)楹蠖似款i點(diǎn)引起整個(gè)系統(tǒng)down掉,所以一般情況下應(yīng)對(duì)高并發(fā)場(chǎng)景我們會(huì)限流,比如英雄聯(lián)盟搶票,周杰倫搶票。
- 通過采用mq等隊(duì)列形式削峰,保證后端系統(tǒng)不會(huì)down掉。
- 熔斷機(jī)制。 - 容災(zāi)機(jī)制,多機(jī)房部署。
綜上所述:
1. 主備/集群模式,防止單點(diǎn)故障;
2. 限流,削峰,防止后端壓力過大;
3. 熔斷機(jī)制,類似與限流;
4. 容災(zāi)機(jī)制,多機(jī)房/異地部署。