Redis 哨兵(sentinel )机制讲解
Redis的存储很好用,用起来简单,性能好,我们经常使用它做缓存,做缓存的时候我们对数据的安全性和更新的及时性都要求的比较简单,如果我们要把redis当成主要存储,我们会遇到什么问题呢?
当成主要存储就一定会考虑到主从的问题。
上图就是一个进店的主从架构。
图中的master 挂掉了,怎么办呢?
我们可以从slave中挑出来一个担当主库来承接写业务,将坏掉的主库下线。这些动作都要手动来操作,人为发现问题,处理问题的时间受很多因素的阻挠,是否可以自动的下线故障主库,挑选可用从库并上线呢?
redis的sentinel机制就是解决这类问题的。
这是一个非常简单的哨兵结构,redis的sentinel服务可以跟redis部署在一起,也可以单独部署,两者不依赖。
从上图可以看出来,每个从库上部署了哨兵,master上也部署了哨兵,哨兵和哨兵之间是可以相互通信的,当某一个哨兵发现master出现问题后,会使用流言传递的算法将信息扩散出去,当达到发现错误的哨兵达到一定数目时
投票选出 核心哨兵
核心哨兵下线主库
核心哨兵挑选从库切换成为主库
将从故障主库切换成从库
评论