Redis中的哨兵模式
Redis 集群模式本身没有使用一致性 hash 算法,而是使用 slots 插槽。
redis哨兵和集群区别是:监控主数据库和从数据库是否正常运行。主数据库出现故障时自动将从数据库转换为主数据库。sentinel发现master挂了后,就会从slave中重新选举一个master。哨兵模式强调高可用。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是 哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
什么是Redis?
Redis是一个nosql数据库,可以存储key-value值。因为其底层实现中,数据读写是基于内存,速度非常快,所以常用于缓存;进而因其为独立部署的中间件,常用于分布式缓存的实现方案。常用场景有:缓存、秒杀控制、分布式锁。
Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。
Redis是一个开源的内存数据结构存储系统,它也可以用作数据库、缓存和消息代理。Redis是Remote Dictionary Server的缩写,最初由Salvatore Sanfilippo开发。
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是一个高性能的key-value数据库。
Redis 是一种开源的高性能、非关系型、基于键值对的数据存储系统,也被称为数据结构服务器。
玩转Redis的高可用(主从、哨兵、集群)
基于以上,Redis集群方案显得尤为重要。通常有3个途径:官方Redis Cluster;通过Proxy分片;客户端分片(Smart Client)。以上三种方案各有利弊。
当Redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤:Sentinel集群的每一个Sentinel节点会定时对Redis集群的所有节点发心跳包检测节点是否正常。
主从复制可以提高Redis集群的可用性,当主节点出现故障时,从节点可以自动或者手动替代主节点的职责,从而保证Redis集群的高可用性。
redis集群如何选取主节点
当节点收到超过n/2+1个master的response后即升级为主。
如果需要从redis集群选举一个节点为主节点,首先需要从Sentinel集群中选举一个Sentinel节点作为Leader。
如果所示,之前的集群是三主三从的Redis集群,现在要加入一主一从,主从复制。主节点端口是7004,从节点端口是8004。
步骤一:使用redis-trib命令,找到集群中的任意一个主节点(红色位置表现集群中的任意一个主节点),对其进行重新分片工作。输出如下:1提示一:是希望你需要多少个槽移动到新的节点上,可以自己设置,比如200个槽。
演示集群采用1主2从,采用伪集群,在一台虚拟机中启动,端口暂定6386386383,集群结构可以选择下面2种,因为数量较少,此次采用普通样式。
Redis集群模式1-主从复制+哨兵机制
传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限。主节点会定期将数据同步到从节点中,保证数据一致性的问题。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
因此, 主从模式的一个缺点,就在于无法实现自动化地故障恢复 。Redis后来引入了哨兵机制,哨兵机制大大提升了系统的高可用性。哨兵,就是站岗放哨的,时刻监控周围的一举一动,在第一时间发现敌情并发出及时的警报。
(1)集群监控,负责监控redis master 和slave进程是否正常工作。(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员。(3)故障转移,如果master node挂掉了,会自动转移到slave node上。
常见分布式集群选举机制总结
Zookeeper的选举机制有2个触发条件:集群启动阶段和集群运行阶段leader挂机。这2种场景下选举的流程基本一致,我们以集群运行阶段leader挂机为例来进行说明。
Quorums(法定人数), 过半机制 :默认方式,比如3个节点的集群,Quorums = 2, 也就是说集群可以容忍1个节点失效,这时候还能选举出1个leader,集群还可用。
一,Zookeeper选举过程中服务器的状态。LOOKING:寻找leader状态,该状态下,服务器认为当前集群没有leader,会发起leader选举。在选举过程中,所有服务器的状态都是LOOKING。
MongoDB的选举算法是基于Raft协议的改进,Raft协议将分布式集群里面的节点有3种状态:leader:就是Primary节点,负责整个集群的写操作。candidate:候选者,在Primary节点挂掉之后,参与竞选的节点。
这是一种传统的分布式一致性算法,是一种基于选举领导者的共识机制。领导者节点拥有绝对权限,并允许强监督节点参与,其性能高,资源消耗低。所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。
多数派机制:ceph分布式存储系统是依赖monitor管理ceph集群中的各种视图,如OSD视图与MDS视图。而monitor服务本身也是基于paxos算法的分布式集群。
关于redis三主三从如何选举和redis三主三从原理图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。