前面学习了MySQL数据库的复制、优化,以及基于复制技术实现业务层的读写分离方案,这些内容是为了铺垫MySQL数据库的高可用架构设计。因为复制是高可用的基础,但只用复制同步数据远远不够,还要结合自己的业务进行高可用设计。
同时,高可用也不仅仅是数据库的事,你要从业务的全流程出发,思考怎么设计一个真正健壮的高可用架构。
高可用概念(High Availability)
首先,我们来看一下wiki上对高可用的定义:
High availability (HA) is a characteristic of a system which aims toensure an agreed
level of operational performance, usually uptime, for a higher than normal period.
从上面的描述来看,高可用是系统能提供无故障服务的一种能力。简单地说就是避免服务器宕机而造成服务不可用。
我们都知道,高可用是每个业务系统设计时,开发人员必须考虑的关键点。比如你的系统在发生不可用时,业务表现如何?用户能否容忍你的不可用时长?
而业界度量高可用能力也有统一标准:判断宕机时间,并以此计算出每年系统可用时间达到几个9,来判断高可用架构是否健壮。具体如下表:
通常来说,系统至少要达到4个9(99.99%),也就是每年宕机时间不超过52.56分钟,否则用户体验会非