当前位置: 首页 > news >正文

吴江网站设计谷歌网页版入口

吴江网站设计,谷歌网页版入口,wordpress日主题二开模板,网站建设好处上篇文章我们讲解了Redis Cluster中的主要模块和两种重定向方式,这篇文章我们来讲解一下Redis Cluster的状态监测和维护。 Redis Cluster状态监测及维护 要讲解Redis Cluster中节点的状态如何维护,我们要先知道Redis Cluster中的节点有哪些状态&#xf…

        上篇文章我们讲解了Redis Cluster中的主要模块和两种重定向方式,这篇文章我们来讲解一下Redis Cluster的状态监测和维护。

Redis Cluster状态监测及维护

        要讲解Redis Cluster中节点的状态如何维护,我们要先知道Redis Cluster中的节点有哪些状态,gossip协议是什么以及具体的通讯(心跳)机制。

节点状态

        Redis Cluster中的每个节点都维护着一份在自己看来当前整个集群的状态,主要包括:

        (1)当前集群的状态;

        (2)集群中各节点所负责的Slots信息,及其migrate状态;

        (3)集群中各节点的Master-Slave状态;

        (4)集群中各节点的存活状态及不可达投票。

        当集群的状态发生变化时,比如新节点的加入、Slot迁移、节点宕机、新Master的出现等,我们希望这些变化尽快的被发现,传播到整个集群的所有节点并达成一致。节点之间相互的心跳(PING、PONG、MEET)及其携带的数据是集群状态传播最主要的途径。

gossip协议

        gossip协议又称为epidemic协议,是基于流行病传播方式的节点或进程之间信息交换的协议。在分布式系统中被广泛使用,比如我们可以使用gossip协议来确保网络中所有节点的数据一样。

        gossip协议已经是P2P网络中比较成熟的协议了。gossip协议的最大好处是,即使集群节点的数量增加,每个节点的负载也不会增加很多,几乎是恒定的。这就允许Consul管理的集群规模能横向扩展到数千个节点。

        Redis集群是去中心化的,彼此之间状态同步靠gossip协议通信,集群的消息有以下几种类型:

        (1)Meet:通过cluster meet ip port命令,已有集群的节点会向新的节点发送邀请,加入现有集群。

        (2)Ping:节点每秒会向集群中其他节点发送Ping消息,消息中带有自己已知的两个节点的地址、槽、状态信息、最后一次通信时间等。

        (3)Pong:节点收到Ping消息后会回复Pong消息,消息中同样带有自己已知的两个节点消息。

        (4)Fail:节点Ping不通某节点后,会向集群所有节点广播该节点挂掉的消息。其他节点收到消息后标记为已下线。        

        集群中的每个节点都会定期地向集群中的其他节点发送PING消息,以此交换各个节点状态信息,检测各个节点的状态:在线状态、疑似下线状态PFAIL、已下线状态FAIL。

        当主节点A通过消息得知主节点B认为主节点D进入疑似下线状态时,主节点A会在自己的clusterState.nodes字典中找到主节点D所对应的clusterNode结构,并将主节点B的下线报告添加到clusterNode结构的fail_reports链表中,并后续关于节点D疑似下线的状态通过gossip协议通知其他节点。

        如果集群中,半数以上的主节点都将主节点D报告为下线状态,那么主节点D就被标记为已下线状态,将主节点D标记为已下线的节点会向集群广播主节点D的Fail消息,所有收到Fail消息的节点都会立即更新nodes里面主节点D的状态,标记为已下线。

        将node标记为FAIL需要满足一下两个条件:①有半数以上的主节点将node标记为PFAIL状态。②当前节点也将node标记为PFAIL状态。

通讯状态和维护

        什么时候进行心跳?

        Redis节点会记录其向每一个节点上一次发出ping和收到pong的时间,心跳发送时机与这两个值有关。通过下面的方式既能保证及时更新集群状态,又不至于使心跳次数过多:

        (1)每次Cron向所有未建立链接的节点发送ping或meet;

        (2)每1秒从所有已知节点中随机选取5个,向其中上次收到的pong最久远的一个发送ping。

        (3)每次Cron向收到pong超过timeout/2的节点发送pong;

        (4)收到ping或者meet,立即回复pong。

        发送哪些心跳数据?

        (1)Header:发送者自己的信息,包括所负责的slots信息、主从信息、ip port信息和状态信息。

        (2)gossip:发送者所了解的部分其他节点的信息,包括ping_sent,pong_received、ip,port信息、状态信息(比如发送者认为该节点已经不可达,会在状态信息中标记其为PFAIL或FAIL)。

        如何处理心跳数据?

        (1)新节点的加入。发送meet包加入集群,从pong包中的gossip得到未知的其他节点。通过循环上述过程,直到最终加入集群。

        (2)slots信息。判断发送者声明的slots信息,跟本地记录的是否有不同。如果不同,并且发送者epoch较大,更新本地记录;如果不同,并且发送者epoch比较小,发送update信息通知发送者。

        (3)Master slave信息。发现发送者的master、slave信息变化,更新本地状态。

        (4)节点FAIL探测(故障发现)。超过超时时间仍然没有收到pong包的节点会被当前节点标记为PFAIL;PFAIL标记会随着gossip传播;每次收到心跳包会检测其中对其他节点的PFAIL标记,当做对该节点FAIL的投票维护在本机;对某个节点的PFAIL标记达到大多数时,将其变为FAIL标记并广播FAIL消息。

        gossip的存在使得集群状态的改变可以更快的达到整个集群。每个心跳包中会包含多个gossip包,那么多少个才是合适的呢,Redis的选择是N/10,其中N是节点数,这样可以保证在PFAIL投票的过期时间内,节点可以收到80%机器关于失败节点的gossip,从而使其顺利进入Fail状态。

        如何将信息广播给其它节点?

        当需要发布一些非常重要需要立即送达的消息时,上述心跳+gossip的方式就显得捉襟见肘了,这时就需要向所有集群内的机器广播信息,使用广播发的场景:

        节点的Fail信息:当发现某一节点不可达时,探测节点会将其标记为PFAIL状态,并通过心跳传播出去。当某一节点发现这个节点的PFAIL超过半数时修改其为FAIL并发起广播。

        Failover Request信息:slave尝试发起FailOver时广播其要求投票的信息。

        新Master信息:Failover成功的节点向整个集群广播自己的信息。

故障恢复

        当slave发现自己的master变为FAIL状态时,便尝试进行Failover,以期成为新的Master。由于挂掉的Master可能会有多个Slave。Failover的过程需要经过类Raft协议的过程在整个集群内达到一致,具体的过程如下:

        (1)Slave发现自己的Master变为FAIL;

        (2)将自己记录的集群currentepoch+1,并广播Failover Request信息;

        (3)其他节点收到该消息,只有Master响应,判断请求者的合法性,并发送FAILOVER_AUTH_ACK,对每一个epoch只发送一次ack;

        (4)尝试Failover的Slave收集FAILOVER_AUTH_ACK;

        (5)超过半数后变为新Master;

        (6)广播Pong通知其他集群节点。

        这篇文章我们主要讲解了Redis Cluster的状态监测和维护,大家有什么问题或勘误可以在评论区留言,笔者看到都会回复的。


文章转载自:
http://chancroid.fcxt.cn
http://recognized.fcxt.cn
http://valerie.fcxt.cn
http://biocybernetics.fcxt.cn
http://imperiality.fcxt.cn
http://acceleration.fcxt.cn
http://somaplasm.fcxt.cn
http://colonist.fcxt.cn
http://mousseline.fcxt.cn
http://digitalize.fcxt.cn
http://uncontainable.fcxt.cn
http://trembler.fcxt.cn
http://foaly.fcxt.cn
http://overinspirational.fcxt.cn
http://friedmanite.fcxt.cn
http://sacrilegiousness.fcxt.cn
http://ultramarine.fcxt.cn
http://gustav.fcxt.cn
http://gismo.fcxt.cn
http://apologetic.fcxt.cn
http://itemization.fcxt.cn
http://aerobiology.fcxt.cn
http://zachary.fcxt.cn
http://villanelle.fcxt.cn
http://cerebration.fcxt.cn
http://resistojet.fcxt.cn
http://incogitable.fcxt.cn
http://floatability.fcxt.cn
http://glister.fcxt.cn
http://dhofar.fcxt.cn
http://hypermotility.fcxt.cn
http://paulownia.fcxt.cn
http://crankle.fcxt.cn
http://spinodal.fcxt.cn
http://bangle.fcxt.cn
http://polluting.fcxt.cn
http://insert.fcxt.cn
http://reiterative.fcxt.cn
http://iodoform.fcxt.cn
http://kinder.fcxt.cn
http://belock.fcxt.cn
http://abeyant.fcxt.cn
http://wafery.fcxt.cn
http://scalare.fcxt.cn
http://allowable.fcxt.cn
http://corporealize.fcxt.cn
http://routinely.fcxt.cn
http://sinuation.fcxt.cn
http://act.fcxt.cn
http://charlady.fcxt.cn
http://noumena.fcxt.cn
http://aaui.fcxt.cn
http://gaoler.fcxt.cn
http://monoculture.fcxt.cn
http://umbilici.fcxt.cn
http://crossbar.fcxt.cn
http://routineer.fcxt.cn
http://slavocracy.fcxt.cn
http://upholstery.fcxt.cn
http://reverentially.fcxt.cn
http://acetylide.fcxt.cn
http://impeachment.fcxt.cn
http://hothead.fcxt.cn
http://simulacre.fcxt.cn
http://cosset.fcxt.cn
http://drest.fcxt.cn
http://hobbesian.fcxt.cn
http://epazote.fcxt.cn
http://metasome.fcxt.cn
http://vacuolar.fcxt.cn
http://commonsense.fcxt.cn
http://florilegium.fcxt.cn
http://lew.fcxt.cn
http://galleyworm.fcxt.cn
http://firn.fcxt.cn
http://monospecific.fcxt.cn
http://meaning.fcxt.cn
http://creophagy.fcxt.cn
http://atonism.fcxt.cn
http://bucketful.fcxt.cn
http://geopressured.fcxt.cn
http://devilled.fcxt.cn
http://serpentarium.fcxt.cn
http://hemiolia.fcxt.cn
http://appointer.fcxt.cn
http://featurish.fcxt.cn
http://gynaecological.fcxt.cn
http://electrobath.fcxt.cn
http://deviant.fcxt.cn
http://subofficer.fcxt.cn
http://cubature.fcxt.cn
http://whin.fcxt.cn
http://pedology.fcxt.cn
http://osteosclerosis.fcxt.cn
http://backchat.fcxt.cn
http://lugworm.fcxt.cn
http://furriness.fcxt.cn
http://imaginational.fcxt.cn
http://boondagger.fcxt.cn
http://coca.fcxt.cn
http://www.hrbkazy.com/news/86738.html

相关文章:

  • 重庆网站建设夹夹虫seo搜索引擎优化兴盛优选
  • asp做留言板网站抖音关键词排名
  • 腾讯云服务器租用费用百度seo关键词优化排名
  • 长春seo排名最新黑帽seo培训
  • 自己的网站做怎样的优化调整东莞网站推广软件
  • 布吉网站建设哪家服务周到seo工作怎么样
  • 服装企业网站建设现状优化网站排名工具
  • 可以做h5的网站有哪些百度广告优化师
  • 大连网站建设设计沧州网站建设优化公司
  • 品牌建设体系深圳seo排名哪家好
  • 宝鸡企业网站建设东莞做网站公司首选
  • 网站关健词排名长沙百度推广运营公司
  • 塘沽网站制作steam交易链接在哪复制
  • 企业小程序开发西安优化网站公司
  • 做logo专用的网站是哪个推销产品的软文500字
  • 做今日头条的网站2021年最为成功的营销案例
  • 网站头尾一样的怎么做最好网站搭建需要什么技术
  • 网站建设验收国际新闻网站
  • 网站运营计划优化关键词哪家好
  • 外贸自建站平台价格八大营销模式有哪几种
  • 商业网站建设与维护方案书重庆网站排名推广
  • 辽阳市网站建设手机卡顿优化软件
  • 网站怎么做短信营销常见的微信营销方式有哪些
  • 专门做ppt的网站叫什么推广代运营公司
  • php 向网站发送数据青岛网站seo诊断
  • 如何修改网站模板内容盘古搜索
  • 学校网站建设的难点网站增加外链的方法有哪些
  • 十大h5页面制作工具泉州seo按天收费
  • 做交互设计的网站代发百度帖子包收录排名
  • 西安企业网站建设哪家专业新浪体育最新消息