redis Sentinel工作原理

redis Sentinel工作原理


主从实现工作原理:
1.有一个作为第三方的软件,就是所谓的集群工具,如(zookeeper、redis Sentinel等)
2.有一个客户端应用,集成了订阅集群工具信息的接口(就是客户端应用要知道与那个提供服务的服务器进行信息交互,因为有主从服务器,所以要知道主的IP才可以)
3.提供服务的服务器(主从)与集群工具定时交互工作状态信息,当集群工具发现主机宕机时,会将从机设置为主机,并发布信息到订阅这个信息的客户端应用。
4.客户端应用接收到发布的消息就知道应该与那个服务器进行交互数据了。
5.主从自动切换原理基本是这样实现。
6.集群就是将数据按某种算法计算应该保存到那个服务器上,(如hash算法,对于请求可能会按随机算法进行分发(还可能按负载均衡、网络流量等进行分发),但要求同一key发送到同一个服务器的还是用hash算法)


1.Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。

主要功能有以下几点
1.不时地监控redis是否按照预期良好地运行;
2.如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端);
3.能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它所追随的master的地址改为被提升为master的slave的新地址。


Sentinel支持集群
1.只使用单个sentinel进程来监控redis集群是不可靠的,当sentinel进程宕掉后(sentinel本身也有单点问题,single-point-of-failure)整个集群系统将无法按照预期的方式运行。所以有必要将sentinel集群,这样有几个好处:
(1)即使有一些sentinel进程宕掉了,依然可以进行redis集群的主备切换;
(2)如果只有一个sentinel进程,如果这个进程运行出错,或者是网络堵塞,那么将无法实现redis集群的主备切换(单点问题);
(3)如果有多个sentinel,redis的客户端可以随意地连接任意一个sentinel来获得关于redis集群中的信息。


参考(Redis Sentinel机制与用法): http://www.cnblogs.com/zhoujinyi/p/5569462.html

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2341989