1. 什么是系统99.99高可用?
如果你的系统可以保证全年,99.99%的事件内,都是处于高可用的状态,那么就可以称为高可用
99.9, 99% 都可以统称为高可用 80%可用,低可用性
定义:如果说你的系统可以保证在全年,99.99%的时间内,都是处于可用状态的,那么就可以称之为高可用性
2. 什么是系统不可用?
- (1)机器死机了,宕机了
- (2)jvm进程OOM了,挂了
- (3)机器CPU打满了,不工作了。
- (4)磁盘满了,系统各种IO报错了,不工作了。
- (5)...
各种原因,都可能导致你的系统挂掉,没法提供服务,请求过来,什么都没有,没有任何响应,系统起不来,没法卖东西。
3. redis不可用
3.1 什么会导致redis不可用?
- (1) redis进程死掉了
- (2)redis进程所在的机器死掉了
- (3) 缓存不可用,请求都到mysql上去了,大量流量跑到mysql上去,导致mysql宕机;mysql宕机,导致系统不可用。
3.2 slave node挂掉了会怎么样?master node挂掉了有会怎么样?
正常情况下,如果是一个slave node挂掉了,是不会影响可用性的,还有其他的各种slave node提供相同的对外查询服务。
- 但是,如果是master node死掉了呢?
导致后果:没法写数据了,写缓存失效了,没法想slave node同步数据量,相当于不可用了。
4. redis基于哨兵的高可用性
redis高可用架构,又叫做故障转移,failover,也可以称为主备切换。
通过哨兵 sentinal node,可以实时监测redis节点的健康情况,当master节点故障时,自动检测,并且将某个slave node自动切换为 master node的过程,称为主备切换。这个过程实现了redis的主从架构的高可用性。
所以,一旦mater故障,在很短的时间内,sentinal node就会切换到另一个master上去,redis可能就几分钟不可用
参考 石衫老师 《亿级流量教程》课程笔记
本文使用 mdnice 排版