高可用系统,就是说要保证系统在几乎任务时候都要有正常运行,功能正常。
我们来看下哪些情况会造成系统不可用。
单机系统下的可用性问题,从nginx->tomcat->db/soa来看,单点问题会影响系统高可用,比如要是这个这个链路上其中一个单点挂了,那么整个系统都不可用了。所以引申出来主备/集群模式,防止单点问题。
高并发场景下,请求过多也会因为后端瓶颈点引起整个系统down掉,所以一般情况下应对高并发场景我们会限流,比如英雄联盟抢票,周杰伦抢票。
通过采用mq等队列形式削峰,保证后端系统不会down掉。
熔断机制。
容灾机制,多机房部署。
综上所述:
主备/集群模式,防止单点故障;
限流,削峰,防止后端压力过大;
熔断机制,类似与限流;
容灾机制,多机房/异地部署。