应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

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

  满怀忧思,不如先干再说!
  主从复制出现的问题
  上篇文章《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配置其他两台,三台配置是一样的,修改端口和ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件,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){Stringkeykeyi;Stringvaluevaluei;try{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){Stringkeykeyi;try{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节点,对他们进行心跳检测,判断是否在正常工作
  收藏等于学会!别忘了点赞,关注哦,高频推出技术文章,有问题记得评论或者私信!

极空间NAS终于可以远程访问Docker,还能给全家设备内网前言大家好,我是噩梦飘雷自从去年入手了极空间新Z4,使用至今也有快一年的时间了。极空间在NAS系统和APP的人性化、易用程度方面做得极佳,无论在PC端还是移动……治疗眩晕的方子,三味药!天旋地转,眩晕欲仆,轻松化解眩晕之症病因复杂,轻重有别。轻度眩晕易疗,重度眩晕难治严重影响生存质量,甚至引发中风。中医认为风、火、痰(湿)、瘀虚均可导致眩晕。无虚不作眩,无痰不作眩之说占主导地位。多……山东泰山最强阵容直指超级杯中国足坛现在可谓是千疮百孔,足协中只要是有实权的不是高层还是中层都进去了,中国男足跌入了有史以来最寒的寒冬!三天后进行的超级杯将是寒冬中的一抹绿色,带领着中国足球的复苏!……侃爷惊爆再婚!闪婚原因不可说前几天,有媒体拍到侃爷(KanyeWest)和一个神秘的金发女郎在城里闲逛。侃爷坐在车里久违的露出大白牙,显得异常开心。露着大白牙的侃爷当时网友们还在评论区调侃来着……名古屋女子马拉松张德顺李芷萱达标巴黎奥运京报体育记者陈嘉堃在上周日举行的日本名古屋女子马拉松赛上,中国选手张德顺以2小时24分05秒获得第四名,李芷萱跑出2小时26分28秒获得第八名。这两位中国选手的成绩都超过……痛惜!猴哥悼别西游记副导演,一张合照暴露六小龄童真实人缘永远的猴哥六小龄童突然更新一条动态,并迅速冲上了热搜。照片中,他站在病床前双手合十,床上虚弱的病者艰难地竖起抬起右手伸出大拇指。光是这张照片,就能看出两人之间浓浓的……午睡可能影响寿命!医生提醒过了50岁,牢记午睡三不要午睡是很多人养成的好习惯,特别是在疲劳的时候。虽然午睡有许多好处,例如可以提高工作效率和增强记忆力,但是一项新的研究表明,午睡可能会影响寿命。医生建议,过了50岁的人要牢记午睡……mcn新星计划3种植物叶子,轻松控制血糖。河南中医大学第一附属医院,副主任医师魏桂梅。3种植物的叶子有3种植物的叶子。大家好,我是公立三甲医院,副主任医师魏桂梅。很多人都不知道,……曲靖麒麟城月季花开成锦,美了醉了掌上曲靖讯(曲靖日报记者陈泓洁)最美人间四月天,时下走在麒麟城街头,你一定会被迎风娇艳怒放的月季花惊艳到,芬芳四溢的花束令人陶醉。在麒麟花园环岛、南宁西路、子午路等多条城……常规赛各个奖项预测大帝MVP,班切罗最佳新人202223赛季即将进入常规赛的最后一周,现在是时候看一下各个奖项的竞争情况了。MVP的争夺吸引了最多关注的目光,与此同时其他四项个人奖项也都各有多位候选者进行争夺。虽然常规赛……青春无悔!那是纯情而美好的记忆,我在成都漂泊的日子第一篇回想起当年,依然记忆犹新,那是激情四射,勇往直前,自由奔放的时代。2012年7月,在成都龙泉驿边界的山顶上,植被郁郁葱葱,群山烟雾袅袅;天空风起云涌,还下着小雨,给炎炎夏……巨型老鼠入侵英国小镇,个头超过1米,山都要被挖塌了?英国南部有个著名的旅游胜地,叫做滕比镇,镇上的海滩被评为欧洲最佳海滩,每年的客流量高达200万,然而就在几年前,这里的平静被打破了,甚至没人敢靠近海滩了。因为这里被有一群……
腌腊八蒜,放陈醋放米醋?大厨都不对,这样做翠绿好吃,1天变绿腌腊八蒜,放陈醋放米醋?大厨:都不对,这样做翠绿好吃,1天就变绿。亲爱的好朋友们,大家好,我是大厨江一舟,今天又到了,给大家分享美食的时刻了,你们准备好了吗?又快到腌腊八……赵丽颖养眼白色羽毛装近日赵丽颖出席活动,身穿穿白色羽毛抹胸裙露香肩美腿纤细性感摇曳超养眼。赵丽颖的长相可以说是非常完美了。赵丽颖的脸又小,眼睛又大,看起来给人的感觉非常的瘦。在影视作品……c罗遭遇史诗级魔鬼赛程!绝对是前无古人,后无来者C罗将在明年三月迎来史诗级魔鬼赛程,可以说是给37岁的C罗一个严峻的大考,不管是俱乐部还是国家队,C罗要面对的,都是艰难的赛程。联赛中,曼联三月份要面对曼城、热刺、利物浦……三位独立分控远程关机不伤电脑,全新向日葵智能USB插线板P2远程办公,居家办公在特殊的现阶段的优势逐步体现,也受到一定的推崇,但是过程中也有一些问题需要解决,诸如远程开机,内网穿透,端口映射,三网互联等问题,都让人头疼,虽然有不少解决方……欧冠5出局皇马进4强北京时间4月13日凌晨3点,20212022赛季欧洲冠军联赛14决赛第二回合迎来一场焦点战,西甲豪门皇家马德里坐镇主场伯纳乌迎战卫冕冠军切尔西,首回合皇马31在客场战胜对手。上……医生天然阿莫西林公布?消炎除菌,或与慢性咽炎说再见慢性咽炎是呼吸道常见的疾病,本身对于人的身体健康不会带来任何的威胁,受到外界刺激会导致喉咙以及支气管出现病变风险,在这种情况下不仅使咽喉受到影响,对于其他器官也会存在危险性。……最美富平春暖花开好时节,游春赏花好去处赏花文丑学迅摄影荆铁日暖回春,万物勃发,最先抢尽风头的莫不属于次第盛开的花了。百花竞艳,姹紫嫣红,可谓异彩纷呈。美人梅的妖娆妩媚,迎春花的金黄惹目,玉兰花的仙来空灵……喜欢油菜花的你,知道河南这八个油菜花田吗?看看有没有去过?春姑娘来了!唤醒了大地的一切,小草探出了可爱的小脑袋,花儿随风摇曳着身姿,那可爱的鸟、兽、虫、鱼都从寒冷的冬天中醒来了,大地热闹起来了,漫步在田野,那金灿灿的油菜花灿烂夺目,一……肾病患者要想获得自由,必先做到自律慢性肾脏病的治疗和管理是一个漫长的过程,很多患者都希望能够摆脱疾病的束缚,重获生活的自由,但这一切都要建立在病情稳定的基础上,而要想维持病情稳定,首先要先做到自律!1。健……吃姜不去皮,吃错害自己?吃生姜到底要不要去皮?别做错了生姜是一种常见的调味品,几乎在每个家庭的厨房中都能见到它的身影,无论炒菜,炖汤还是包包子或饺子,很多人都会加入一些生姜,用来体鲜去腥味,增强口感。其实生姜的用途远不止调味……田园综合体建设要深挖乡村特色资源田园综合体的建设,要深度挖掘乡村特色资源,倡导低碳、生态等科学理念,以乡村旅游资源与土地为基础,以乡村旅游休闲为脉络,以休闲商业为配套,以乡村休闲地产为核心,以高品质服务为保障……会说话会做事会为人人生在世,每天都离不开三件事:说话、做事和为人。这是构成整个人生的三大基本要素,也是决定一生成败的三大支撑点,以及在社会上立身处世的三大技巧。可以说这三点是构筑我们卓越人生的金……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网