Redis中算法之——Raft算法

摘要:
Sentinel选择领导者的方法是Raft选择领导者方法的实施。1990年,Leslie Lamport提出了基于消息传递的一致性算法Paxos算法,以解决分布式系统中对某个值或分辨率达成一致的问题。Paxos算法过程复杂,实现复杂。2013年,斯坦福大学的Diego Ongaro和John Ousterhout设计了一致的算法Raft,目标是易于理解。Sentinel是一个以特殊模式运行的Redis服务器。

  Sentinel系统选举领头的方法是对Raft算法的领头选举方法的实现。

  在分布式系统中一致性是很重要的。1990年Leslie Lamport提出基于消息传递的一致性算法Paxos算法,解决分布式系统中就某个值或决议达成一致的问题。Paxos算法流程繁杂实现起来也比较复杂。

  2013年斯坦福的Diego Ongaro、John Ousterhout两个人以易懂为目标设计一致性算法Raft。Raft一致性算法保障在任何时候一旦处于leader服务器当掉,可以在剩余正常工作的服务器中选举出新的Leader服务器更新新Leader服务器,修改从服务器的复制目标。

  Sentinel是一个运行在特殊模式下的Redis服务器。它负责监视主服务器以及主服务器下的从服务器。当领头Sentinel认为主服务器已经进入主观下线状态,将对已下线的主服务器执行故障转移操作,该操作包括三个步骤:

(1)在已下线主服务器下的从服务器中挑选一个从服务器,将其转换为新的主服务器。

(2)让已下线主服务器属下的所有从服务器改为复制新的主服务器。

(3)将已下线主服务器成为新主服务器的从服务器。

Raft详解:http://www.cnblogs.com/likehua/p/5845575.html

分布式Raft算法:http://www.jdon.com/artichect/raft.html

分布式一致算法——Paxos:http://www.cnblogs.com/cchust/p/5617989.html

免责声明:文章转载自《Redis中算法之——Raft算法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Base64工具类:将前端vue与后台SpringBoot传输的参数进行加密和解密Ubuntu 环境安装 opencv 3.2 步骤和问题记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Redis系列文章总结:ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

引言:最近回头看了看开发的.Net Core 2.1项目的复盘总结,其中在多处用到Redis实现的分布式锁,虽然在OnResultExecuting方法中做了防止死锁的处理,但在某些场景下还是会发生死锁的问题,下面我只展示部分代码: 问题: (1)这里setnx设置的值“1”,我想问,你最后del的这个值一定是你自己创建的吗? (2)图中标注的步骤1和步...

实用向—总结一些唯一ID生成方式

在日常的项目开发中,我们经常会遇到需要生成唯一ID的业务场景,不同的业务对唯一ID的生成方式与要求都会不尽相同,一是生成方式多种多样,如UUID、雪花算法、数据库递增等;其次业务要求上也各有不同,有的只要保证唯一性即可,有的需要加上时间戳,有的要保证按顺序递增等。以下是我结合实际业务中的使用总结了几种唯一ID的生成方式,  要求就是在一般的应用场景下一方面...

redis自定义RedisCacheManager

1.redis自定义配置 package com.meritdata.cloud.shellmiddleplatform.dataservice.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.P...

window下远程连接redis服务

首先下redis包: 下载地址:https://github.com/MSOpenTech/redis/releases。 之后:1.注释掉redis.windows-service.conf 中的bind 127.0.0.1这一行(在前面加#) 3.同文件中将protected-mode yes 改成 protected-mode no 4.保存并重启r...

Redis集群下过期key监听

1. 前言 在使用redis集群时,发现过期key始终监听不到。网上也没有现成的解决方案。于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听。以上做法可能不尽人意,目前也没找到好的解决方案,如果有好的想法,请留言告知哦!不多说,直接贴我自己的代码! 2. 代码实现 关于Redis集群配置代码此处不贴,直接贴配...

RedisTemplate访问Redis数据结构(三)——Hash

HashOperations提供一系列方法操作hash。首先初始化spring工厂获得redisTemplate和opsForHash private RedisTemplate<String,Object> redisTemplate; private HashOperations<String,String,Objec...