安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Redis高可用故障转移RedisSentinel哨兵模式从

11月23日 满月族投稿
  满怀忧思,不如先干再说!
  主从复制出现的问题
  上篇文章《Redis主从复制》中我们说到可以对Redis单节点数据进行备份实现Redis高可用,但是如果master节点宕机并不会自动做故障切换等,导致项目中更可能需要接入多数据源,编写代码实现故障切换非常麻烦,Redis考虑到这个问题提供了哨兵模式,也就是RedisSentinel!
  RedisSentinel基本架构
  看图我们说一下RedisSentinel架构,首先我们需要加入Sentinel节点,Sentinel节点去监控Redis中Master和Slave的运行状态,判断是否可用,当然Sentinel节点也是有多个的,实现Sentinel节点的高可用和多节点判断Redis节点是否可用不会出现误判情况
  客户端不再直接操作Redis的Master或者Slave节点,而是去访问Sentinel节点!所以我们的客户端会记录RedisSentinel的地址!我们的客户端不关心谁是Master而是Sentinel告诉客户端谁是Master,后台Master切换了,客户端也不会受到影响!
  当多个sentinel发现并确认master出现问题,会选举出一个sentinel作为领导,选举出一个slave为新的master,通知其余的slave有新的master产生,通知客户端master发生变化,等待老的master复活成为新的master的slave!
  一套sentinel可以同时监控多套master和slave!节省资源!每套masterslave会有一个mastername作为标识以示区别
  安装和配置
  集群规划
  配置开启主从节点,一个master端口号为7000,两个slave节点分别问7001和7002;配置开启sentinel监控主节点。(sentinel是特殊的redis节点,不存储数据),三个sentinel分别为26379,26380,26381;
  配置描述
  master
  port7000daemonizeyespidfilevarrunredisredis7000。pidlogfile7000。logdirusrlocalredis5。0。5data
  slave7001
  命令:seds70007001gredis7000。confredis7001。conf
  将7000替换为7001
  命令:echoslaveofstt1017000redis7001。conf
  重定向slaveofstt1017000到redis7001。conf文件末尾
  port7001daemonizeyespidfilevarrunredisredis7001。pidlogfile7001。logdirusrlocalredis5。0。5dataslaveofstt1017000
  slave7002
  port7002daemonizeyespidfilevarrunredisredis7002。pidlogfile7002。logdirusrlocalredis5。0。5dataslaveofstt1017000
  配置完之后启动三个节点查看主从关系:
  redisclip7000inforeplication
  sentinel主要配置
  三台sentinel使用端口区别port{port}dirusrlocalredis5。0。5datalogfile{port}。log监控主节点名字为mymaster,ip,端口,2台sentinel认为master有问题就会故障转移sentinelmonitormymasteripport230000毫秒ping不通认为出现问题sentineldownaftermillisecondsmymaster30000选择了新的master之后老的slave会对新的slave进行复制,1代表每次只有一个slave进行复制,减轻master压力sentinelparallelsyncsmymaster1故障转移时间sentinelfailovertimeoutmymaster180000
  注意:在redis的安装目录下有一个sentinel。conf文件就是sentinel的配置文件,我们将这个文件拷贝到conf目录下,去除注释等。给出一个26739的配置,其余的两台大家只需修改端口号了pid文件即可
  第一台的配置port26379daemonizeyespidfilevarrunredisredissentinel26379。pidlogfile26379。logdirusrlocalredis5。0。5datastt101为ip映射sentinelmonitormymasterstt10170002sentineldownaftermillisecondsmymaster30000sentinelparallelsyncsmymaster1sentinelfailovertimeoutmymaster180000protectedmodeno通过该命令将sentinel。conf文件去掉注释和换行将内容放到redissentinel26739。conf文件中catsentinel。confgrepvgrepv34;redissentinel26739。conf启动redissentinelredissentinel26739。conf配置其他两台,三台配置是一样的,修改端口和日志文件,pid文件即可seds2637926380gredissentinel26379。confredissentinel26380。confseds2637926381gredissentinel26379。confredissentinel26381。conf
  启动
  使用redissentinel命令读取配置文件分别启动三台sentinel节点记得修改文件名哦redissentinelredissentinel26739。conf分别启动三台Redis节点redisserverredis6379。conf通过客户端连接上sentinel节点redisclih192。168。109。101p26379
  这里大家注意一下:有些可能有疑问,上边端口不是7000吗下边咋变成6379了,搞咩啊,之前在写的时候,这里有一点小瑕疵,我直接重写了,端口号上下没有对应起来,这里声明一下,之前的7000,7001,7002分别对应下文的6379,6380,6381,如果没有发现问题,是不没认真看啊!
  启动之后查看状态
  大家看下边动图,名字为6379,6380,6381的为redis节点,名字为26379的为sentinel节点,演示节点状态和故障转移
  首先在redissentinel下查看address是6381,说明其为主节点之后将6381kill掉,等待一段时间,这里时间大概在30S左右,这段时间我暂停了之后再查看info信息,发现address变为6380
  SpringBoot集成RedisSentinel演示
  这个思路也很简单,我们循环添加或者查询数据,将主节点手动宕机,查看日志打印是否成功切换继续读写数据即可,我们只需要修改application。yml配置文件即可
  配置文件
  spring:redis:host:192。168。109。101这是之前单机时的ip配置port:6379这个是单机时的端口配置,现在都不用写了sentinel:写sentinel节点的ip:portnodes:192。168。109。101:26379,192。168。109。102:26380,192。168。109。103:26381写sentinel节点的名字,因为sentinel可以有很多组,每一组使用名字区分master:mymastertimeout:2s连接池最大连接数(使用负值表示没有限制)maxactive:2000连接池最大阻塞等待时间(使用负值表示没有限制)maxwait:1ms连接池中的最大空闲连接maxidle:1024连接池中的最小空闲连接minidle:100
  代码
  添加数据Testpublicvoidtest7(){循环,添加数据for(inti0;i200;i){SStry{redisTemplate。opsForValue()。set(key,value);慢一点Thread。sleep(500);System。out。println(当前插入:keyvalue);}catch(InterruptedExceptione){e。printStackTrace();}catch(Exceptione){e。printStackTrace();}}System。out。println(数据插入完成);}查询数据Testpublicvoidtest8(){编写循环,添加数据for(inti0;i200;i){Stry{ObjectoredisTemplate。opsForValue()。get(key);慢一点Thread。sleep(500);System。out。println(当前获取:o);}catch(InterruptedExceptione){e。printStackTrace();}catch(Exceptione){e。printStackTrace();}}}
  演示
  这里我又将刚刚关闭的6381节点启动,三个节点提供服务,进行演示,一样的动图送给大家,这里只贴出插入数据的动图了,查询的类似,大家动手做一做试一下!
  基本原理
  由三个定时任务实现的切换
  每10S一个info
  每10秒每个sentinel节点会对master和slave发送一个info命令,一是为了发现slave节点,二是为了确认主从关系
  每2秒交换信息
  每2秒每个sentinel通过master节点的channel交换信息(pubsub),相当于一个sentinel的交互平台,交互对masterslave状态的监听情况和自身的信息。通过一个名为sentinel:hello的频道交互,每个sentinel节点都会订阅这个频道
  每秒1ping
  每一秒每个sentinel节点对其他sentinel和redis执行一次ping,这一步基于第一步sentinel掌握redis的master和slave节点的状况,基于第二步sentinel节点知道其他的sentinel节点,对他们进行心跳检测,判断是否在正常工作
  收藏等于学会!别忘了点赞,关注哦,高频推出技术文章,有问题记得评论或者私信!
投诉 评论 转载

思皓爱跑新增车型上市售价19。99万元续航里程460km〔爱卡汽车国内新车原创〕9月16日,思皓爱跑新增一款畅行版460车型上市,售价为19。99万元。新车延续在售车型的设计,配备容量为50。1kWh的磷酸铁锂电池,CLTC工……佟丽娅成宝格丽红毯大赢家,穿露肩裙美过舒淇章子怡,新造型封神女性穿衣凹造型还是很注重衣品细节的,尤其是像露肤元素这种裁剪设计,融入到女性裙装里真的是太完美了,既能展现女性的身材魅力,也能提升造型看点,所以很讨女性的青睐,不过这类衣品对于……工党领袖阿尔巴尼斯赢得澳大选,曾卖弄对华强硬【文观察者网熊超然】当地时间5月21日,澳大利亚迎来联邦大选投票日,该国1700多万名合格登记选民,将改选众议院全部151个席位以及参议院76个席位中的40个席位。而在众议院赢……泉州惠安有座六百多年的古城崇武古城坐落于福建泉州市惠安县东南海滨,崇武乃崇尚武备之意。明洪武二十年(1387年),江夏侯周德兴经略海防时为抵御倭寇所建,是中国现存最完整的丁字型石砌古城,也是明政府为抗击……高兴的2022年度好书推荐虚构类《铁与绸》,张炜著,广西师范大学出版社,2022年2月(资料图图)张炜长诗《铁与绸》有一个核心故事:八个兄弟困在井下,困在黑暗中,困在时间的围剿中。他们需要某种有效的方式……为什么不少退休医生宁愿去打工,也不愿意自己开诊所?医生深知自己的责任重大,离开医院个人承担所有医疗责任是不现实的,没有人敢冒如此风险。在医院工作是有单位做后盾的,出点事故不必个人承担所有责任,一切问题都比较容易解决。一般来说,……Redis高可用故障转移RedisSentinel哨兵模式从满怀忧思,不如先干再说!主从复制出现的问题上篇文章《Redis主从复制》中我们说到可以对Redis单节点数据进行备份实现Redis高可用,但是如果master节点宕……6万预算神车推荐?车长超4米7,长安逸动可以一看6万预算有没有性价比高的车型推荐呢?要求颜值在线、动力有保障、空间还要够用、省油省心!好家伙,这个要求有点类似于大海捞针,但是但是!真的有一台这样的车,大家可以参考参考,那就是……传染病专家唐小平复阳病例的传染性非常低中国青年报客户端讯(中青报中青网记者林洁)康复后有一定复阳比例,但其传染性非常低。12月2日晚,广州医科大学党委书记唐小平接受媒体采访时表示,新冠肺炎感染者住院后,两次核酸阴性……大家觉得2021年度最佳手机是哪一款呢?文小伊评科技本文将会把手机分为五个档次,每个档次都会推选出来一款最佳手机,如下所示:顶级(起步价7000元以上):iPhone13ProMAX高端(起步价50……第七届栗山诗会中国诗歌艺术奖丨中国诗歌田野调查奖柯雷荷兰柯雷(MaghielvanCrevel)简介柯雷(MaghielvanCrevel),荷兰人,汉学家,1996年获荷兰莱顿大学中国文学博士学位,19961999年在澳……如果淘宝支付宝倒闭了,对于我们的生活是利大于弊还是弊大于利?谢邀,抛砖引玉!淘宝,支付宝,拼多多,京东等这些都是时代的产物,而不是它们的时代〔赞〕一个淘宝到了,会有更多的替代品。不是软件难度有多大,而且垄断的高压,新品牌,小……
重磅压哨!郭艾伦只硬气了4个月!辽篮将帅合体向卫冕发起冲击阿基诺三世华裔菲律宾总统,却甘愿跪舔美日,最后收场凄惨兰花中的红贵妃,香味浓郁又高雅,多季节有花赏,值得拥有阳斗士橙子这才是清朝老百姓真正的辫子,绝非电视剧中的那般简单农夫报案,牛舌头被人偷割,包拯你把牛宰了,贼人自然会来自首职场中是我们的态度重要,能力重要,还是学历重要?联中抗俄?美对华态度大转弯!中方提出4大疑问,美方很被动李鑫双色球2022108期分析精选61蓝球注意2路号公务员待遇怎么样啊?大家觉得steam买NBA2K20值吗?身体是革命的本钱呀武则天67岁当皇帝姜子牙83才钓鱼今年夏天懒人裤火了,配平底鞋穿,舒适又显高,特适合小个子二手烟对孕妇的危害孕妈遭遇二手烟的原因致春天作文500字描写父母的爱的句子集锦什么是真正的格局遇到烂人不计较碰到破事别纠缠本是造句用本是造句大全高空坠物过错责任认定原则是什么?冷天造句用冷天造句大全小猫钓鱼的教案离婚后探望权如何行使?不能行使探望权的情形有哪些建筑工地安全标语白色记忆抒情散文

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利