专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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配置其他两台,三台配置是一样的,修改端口和日志文件,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节点,对他们进行心跳检测,判断是否在正常工作
  收藏等于学会!别忘了点赞,关注哦,高频推出技术文章,有问题记得评论或者私信!

ATC一个能将主流开源框架模型转换为昇腾模型的神奇工具本文分享自华为云社区使用ATC工具将主流开源框架模型转换为昇腾模型云社区华为云,作者昇腾CANN。什么是ATC,它能做什么?昇腾张量编译器(AscendTensorCompiler查询性能提升310倍!ApacheDoris极速数据湖分析深度解读从上世纪90年代初BillInmon在buildingtheDataWarehouse一书中正式提出数据仓库这一概念,至今已有超过三十年的时间。在最初的概念里,数据仓库被定义为一个均支持5G网络,G0DZQ等四款谷歌手机型号通过FCC认证IT之家2月28日消息,根据国外科技媒体MySmartPrice报道,型号为G0DZQGWKK3GHL1X和G82U8的四款谷歌手机通过FCC认证,均支持5G网络。目前无法确认上述NuPhyHalo65小袋鼠轴两月完整体验这款键盘采用65配列,讲真,我个人纯粹是看上这款键盘的颜值外观上盖铝合金,底壳塑料,采用的独立指示灯条个人最喜欢的就是上下盖之间的一道环绕式RGB灯带,被命名为光环。这个光环最大的梅婷的腿,李小冉的胸,让我看到了中年女星的性张力春天到了,到了乱花渐欲迷人眼的时候了,万物生机盎然,如花儿般美丽的女星们也开始争奇斗艳了。而中年女星们,就像刚刚成熟的花蕾,透着年轻女星身上所没有的韵味,让人印象深刻。最近两天的时马丽与小老公罕见走机场,穿大衣配小脚裤瘦了不少,像换了个人在乍暖还寒的春季穿搭当中,大衣绝对是经典中的经典,一年四季当中,基本上只有盛夏的时候用不到,因此,对于大部分女性来讲,衣柜当中大衣的上身率都是非常高的。很多人知道大衣的实用性强,也献礼三八女神节4款变美套餐,与你相约美丽眼角细纹法令纹抬头纹长斑暗沉松弛就像基金和股票变绿衰老防不胜防尤其是最近春暖花开大家脱下厚重大衣穿上美美的春装脸的问题就愈发凸显连带留言咨询抗衰的朋友也日渐增多为了满足广大爱美人士胶原蛋白行业分析护肤成分新宠,剑指千亿市场规模(报告出品方作者西南证券,龚梦泓谭陈渝)1胶原蛋白是什么?胶原蛋白是广泛存在于生物体中的一种生物高分子,是动物结缔组织中的主要成分,也是哺乳动物体内含量最多分布最广的功能性蛋白,占刘亦菲的戏从没让人失望过演技实力派以演技对话世界,以热情和体验面对光影人生,刘亦菲再次登上嘉人三月开季刊封面一同感受蓝血时尚顶级奢侈品牌路易威登与世界级巨星刘亦菲背后的别样生机以优雅气质沁入时尚长廊,点缀其实不上班的痛苦要大于上班的痛苦毕竟工作占据了一天的大部分时间,人们不必做决定。如果能自由安排时间,很多人可能都想不出好玩的事情。无论你决定做什么,你都会很痛苦,因为肯定还有其他更有趣的事情要做。有意识地明智地度杨绛到了一定年纪,要学会,追赶不上的,不追,背不动的,放下杨绛的一段话让人沉静了下来到了一定的年纪,就不要再追求一些华而不实的东西了。人这一生没有多少时间可以挥霍,踏实一点,务实一点。和谁在一起轻松愉悦,就和谁在一起,追赶不上的,不追,不
末代皇后婉容的悲惨凄凉人生故事婉容可称得上大家闺秀。她父亲荣源毕业于京师大学堂,主张男女平等是位开明人士。少时的婉容就接受了琴棋书画的教育,父亲还专门请了英语为婉容教授英语。所以从小不仅接受了中国传统文化的熏陶新研究发现维生素D可以帮助延长人的寿命尽管阳光是维生素的主要来源,但仍有三分之一的澳大利亚人存在轻度中度或严重的维生素D缺乏症。现在,南澳大利亚大学的一项新研究提供了令人信服的证据,表明维生素D的缺乏与过早死亡有关,营这也许就是清朝三代皇帝没有留下子嗣的原因吧清朝三代皇帝都绝后,这或许有点带着大清命运即将覆灭的迷信色彩,导致他们的绝后,也因为这几个皇帝是一个不如一个。咸丰同治光绪都是风流皇帝,他们的风流不似乾隆那般洒脱倜傥,而是夜夜笙歌明朝异闻录运河迷案京杭大运河自古以来就是纵贯南北的重要水道。永乐八年,明成祖派工部尚书宋礼花巨资疏浚运河之后,河道更加宽广,改变了宋元时代只能航行小型船只的局面,运河两岸商业店铺更加繁华。千百年来运钞票为何在明朝经济发展中起不了作用呢?钞票在古代最早出现在宋朝,宋朝的商品经济高度发达,纸币作为交易载体十分便捷,随着经济发展应运而生,此后被宋金元等朝代沿用下来,到了明朝时期,明朝的前几位皇帝也都认为纸币好用,在统治明朝犯人杨溥,在诏狱内苦读10年,读出了自己高光时刻永乐年间,在锦衣卫的诏狱中,一个名叫杨溥的犯人,在铁窗内苦读10年。他读走了狱友,读死了朱棣,读来了朱高炽,也读出了自己的高光时刻。一天,坐在龙椅上的朱棣,听下人嘀咕杨溥莫非疯了?明朝的国运是怎么终结的?头条创作挑战赛大航海时代最初的海上霸主其实是西班牙,而英国组织海盗抢劫的也是西班牙,抢的是什么货物呢?主要就是产自美洲的白银。欧洲人把非洲奴隶贩卖到美洲,再从美洲换回大量的白银,而大宋王朝史大宋王朝自公元960年建立到公元1279年覆灭,从繁荣昌盛到偏安一偶,其中的功过是非自有后人评说。北宋时期和平与繁荣让北宋的市民阶层和上流社会对声歌有着共同的需求。此时,豪放派与婉清朝的妃子很丑?一组老照片告诉你,其实她们的样貌不输女明星古时候的封建王朝的最高统治者皇帝,个个有着三千的后宫佳丽,享受着无边的欢乐。这些得以进入皇帝后宫的女子们,必须是经过精挑细选层层选拔才能步入宫殿,更是需要莫大的机缘才能成为皇帝的妃大明太子朱标不死,朱棣不敢造反引言大明太子朱标,自幼便被朱元璋以储君培养,辅以良师宋濂,娶以名将之后,可惜朱标三十七岁意外离世,被人称为中国历史最令人惋惜的太子。若是朱标不死,朱棣恐不敢造反。太子朱标公元1352022。12。04早安心语丨冬日早晨问候祝福图片丨温馨早上好问候早上好!有缘躲不开,无缘遇不到。珍惜今生缘,携手共创平安。问候有心人,祝福永牵挂。生活如此多娇,何必一地鸡毛。闲要有滋味,忙要有价值,常微笑,懂知足,不羡慕谁,也不讨好谁,少一些抱
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网