#头条二面:宕机后,Redis如何实现快速恢复?#

这篇文章,我们来看Redis是如何实现故障自动恢复的,它的实现正是要基于之前所讲的数据持久化和数据多副本而做的。

Redis作为非常火热的内存数据库,其除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis也提供了完善的故障恢复机制:哨兵。

下面就来具体来看看Redis的故障恢复是如何做的,以及其中的原理。

部署模式

Redis在部署时,可以采用多种方式部署,每种部署方式对应不同的可用级别。

单节点部署:只有一个节点提供服务,读写均在此节点,此节点宕机则数据全部丢失,直接影响业务。

master-slave方式部署:两个节点组成master-slave模式,在master上写入,slave上读取,读写分离提高访问性能,master宕机后,需要手动把slave提升为master,业务影响程度取决于手动提升master的延迟。

master-slave+哨兵方式部署:master-slave与上述相同,不同的是增加一组哨兵节点,用于实时检查master的健康状态,在master宕机后自动提升slave为新的master,最大程度降低不可用的时间,对业务影响时间较短。

从上面几种部署模式可以看出,提高Redis可用性的关键是:多副本部署 + 自动故障恢复,而多副本正是依赖主从复制。

高可用做法

Redis原生提供master-slave数据复制,保证slave永远与master数据保持一致。

在master发生问题时,我们需要把slave提升为master,继续提供服务。而这个提升新master的操作,如果是人工处理,必然无法保证及时性,所以Redis提供了哨兵节点,用来管理master-slave节点,并在master发生问题时,能够自动进行故障恢复操作。

整个故障恢复的工作,正是Redis哨兵自动完成的。

哨兵介绍

哨兵是Redis高可用的解决方案,它是一个管理多个Redis实例的服务工具,可以实现对Redis实例的监控、通知、自动故障转移。

在部署哨兵时,我们只需要在配置文件中配置需要管理的master节点,哨兵节点就可以根据配置,对Redis节点进行管理,实现高可用。

一般我们需要部署多个哨兵节点,这是因为在分布式场景下,要想确定某个机器的某个节点上否发生故障,只用一台机器去检测可能是不准确的,很有可能这两台机器的网络发生了故障,而节点本身并没有问题。

所以对于节点健康检测的场景,一般都会采用多个节点同时去检测,且多个节点分布在不同机器上,节点数量为奇数个,避免因为网络分区导致哨兵决策错误。这样多个哨兵节点互相交换检测信息,最终决策才能确认某个节点上否真正发生了问题。

哨兵节点部署并配置完成后,哨兵就会自动地对配置的master-slave进行管理,在master发生故障时,及时地提升slave为新的master,保证可用性。

那么它的工作原理上怎样的呢?

哨兵工作原理

哨兵的工作流程主要分为以下几个阶段:

状态感知

心跳检测

选举哨兵领导者

选择新的master

故障恢复

客户端感知新master

下面对这些阶段进行详细的介绍。

状态感知

哨兵启动后只指定了master的地址,哨兵要想在master故障时进行故障恢复,就需要知道每个master对应的slave信息。每个master可能不止一个slave,因此哨兵需要知道整个集群中完整的的拓扑关系,如何拿到这些信息?

哨兵每隔10秒会向每个master节点发送info命令,info命令返回的信息中,包含了主从拓扑关系,其中包括每个slave的地址和端口号。有了这些信息后,哨兵就会记住这些节点的拓扑信息,在后续发生故障时,选择合适的slave节点进行故障恢复。

哨兵除了向master发送info之外,还会向每个master节点特殊的pubsub中发送master当前的状态信息和哨兵自身的信息,其他哨兵节点通过订阅这个pubsub,就可以拿到每个哨兵发来的信息。

这么做的目的主要有2个:

哨兵节点可以发现其他哨兵的加入,进而方便多个哨兵节点通信,为后续共同协商提供基础

与其他哨兵节点交换master的状态信息,为后续判断master是否故障提供依据

心跳检测

在故障发生时,需要立即启动故障恢复机制,那么如何保证及时性呢?

每个哨兵节点每隔1秒向master、slave、其他哨兵节点发送ping命令,如果对方能在指定时间内响应,说明节点健康存活。如果未在规定时间内(可配置)响应,那么该哨兵节点认为此节点主观下线。

为什么叫做主观下线?

因为当前哨兵节点探测对方没有得到响应,很有可能这两个机器之间的网络发生了故障,而master节点本身没有任何问题,此时就认为master故障是不正确的。

要想确认master节点是否真正发生故障,就需要多个哨兵节点共同确认才行。

每个哨兵节点通过向其他哨兵节点询问此master的状态,来共同确认此节点上否真正故障。

如果超过指定数量(可配置)的哨兵节点都认为此节点主观下线,那么才会把这个节点标记为客观下线。

选举哨兵领导者

确认这个节点真正故障后,就需要进入到故障恢复阶段。如何进行故障恢复,也需要经历一系列流程。

首先需要选举出一个哨兵领导者,由这个专门的哨兵领导者来进行故障恢复操作,不用多个哨兵都参与故障恢复。选举哨兵领导者的过程,需要多个哨兵节点共同协商来选出。

这个选举协商的过程,在分布式领域中叫做达成共识,协商的算法叫做共识算法。

共识算法主要为了解决在分布式场景下,多个节点如何针对某一个场景达成一致的结果。

共识算法包括很多种,例如Paxos、Raft、Gossip算法等,感兴趣的同学可以自行搜索相关资料,这里不再展开来讲。

哨兵选举领导者的过程类似于Raft算法,它的算法足够简单易理解。

简单来讲流程如下:

每个哨兵都设置一个随机超时时间,超时后向其他哨兵发送申请成为领导者的请求
其他哨兵只能对收到的第一个请求进行回复确认
首先达到多数确认选票的哨兵节点,成为领导者
如果在确认回复后,所有哨兵都无法达到多数选票的结果,那么进行重新选举,直到选出领导者为止

选择出哨兵领导者后,之后的故障恢复操作都由这个哨兵领导者进行操作。

选择新的master

哨兵领导者针对发生故障的master节点,需要在它的slave节点中,选择一个节点来代替其工作。

这个选择新master过程也是有优先级的,在多个slave的场景下,优先级按照:slave-priority配置 > 数据完整性 > runid较小者进行选择。

也就是说优先选择slave-priority最小值的slave节点,如果所有slave此配置相同,那么选择数据最完整的slave节点,如果数据也一样,最后选择runid较小的slave节点。

提升新的master

经过优先级选择,选出了备选的master节点后,下一步就是要进行真正的主从切换了。

哨兵领导者给备选的master节点发送slaveof no one命令,让该节点成为master。

之后,哨兵领导者会给故障节点的所有slave发送slaveof $newmaster命令,让这些slave成为新master的从节点,开始从新的master上同步数据。

最后哨兵领导者把故障节点降级为slave,并写入到自己的配置文件中,待这个故障节点恢复后,则自动成为新master节点的slave。

至此,整个故障切换完成。

客户端感知新master

最后,客户端如何拿到最新的master地址呢?

哨兵在故障切换完成之后,会向自身节点的指定pubsub中写入一条信息,客户端可以订阅这个pubsub来感知master的变化通知。我们的客户端也可以通过在哨兵节点主动查询当前最新的master,来拿到最新的master地址。

另外,哨兵还提供了“钩子”机制,我们也可以在哨兵配置文件中配置一些脚本逻辑,在故障切换完成时,触发“钩子”逻辑,通知客户端发生了切换,让客户端重新在哨兵上获取最新的master地址。

一般来说,推荐采用第一种方式进行处理,很多客户端SDK中已经集成好了从哨兵节点获取最新master的方法,我们直接使用即可。

总结

可见,为了保证Redis的高可用,哨兵节点要准确无误地判断故障的发生,并且快速的选出新的节点来代替其提供服务,这中间的流程还是比较复杂的。

中间涉及到了分布式共识、分布式协商等知识,目的都是为了保证故障切换的准确性。

我们有必要了解Redis高可用的工作原理,这样我们在使用Redis时能更准确地使用它。

【全新版本昆山上市 奥铃经典版续写新传奇】

如果有一款车能够担得起“国民轻卡”这个称号,那它必然是奥铃轻卡经典版。

自2005年首款经典产品捷运诞生,奥铃经典版累计销量已超过百万台,百万公里以上用户超千人,十几年间,面对排放法规升级和市场需求变化的双重考验,奥铃经典版始终在淬炼中屹立不倒,经受住了时间检验。

日前,奥铃经典版第四代产品在江苏昆山上市,全新升级而来的产品又开始在国六时代续写新的传奇。

助力长三角物流发展 多场景需求全满足

面对越来越细分的市场需求,奥铃经典版这位驰骋货运市场16年的“老同志”不但没有跟不上脚步,反而以其对客户需求的精准把握,形成了一般品牌不可比拟的优势。目前,奥铃经典版捷运、TX、CTX等车型所含3.7米和4.2米蓝牌合规轻卡,可满足平板杂货运输、厢车商超配送、仓栅绿通运输等多种需求。

此次选择在长三角上市,奥铃已经做好了在最成熟市场接受最严格检验的准备。奥铃营销公司第一副总经理康界炜表示:“全新奥铃经典版选择在昆山上市有两个原因。一是响应中央召开的扎实推进长三角一体化发展座谈会精神,以实际行动助力长三角地区物流产业发展;二是昆山作为我国百强县之首,是县域经济发展典范,这里有最成熟的市场和最‘挑剔’的用户,奥铃已经做好准备,接受这种挑战。”

作为此次活动发布地,长三角地区是我国货车液压尾板装配率最高的地区,奥铃经典版拥有专有液压尾板公告,省去了年检时客户的装卸麻烦,为用户又添一省心选项。此外,为满足高度城镇化的长三角地区出入矮窄路况的需求,奥铃经典版还推出地库车,整车高度低于2.1米,可畅行于限高2.2米的地下车库,是装修搬家用车的不二选择。

国六时代全芯升级 奥铃经典版重装出发

一款好车,必须有强大的内芯,面对即将全面到来的国六时代,能否在排放升级的同时做到动力提升,成了整车厂获得客户信赖的关键。

活动现场,奥铃发布了“高速重载”开创者——奥铃捷运,五十铃动力引领者——奥铃TX,福田康明斯动力升级版——奥铃CTX等多款经典版车型。经典版多款车型搭载康明斯、五十铃、云内、全柴等多种全新升级的知名品牌发动机,并且相比上款车型,全新奥铃经典版动力性能提升9%~30%,扭矩提升14%~30%。其中全柴485发动机升级为Q23发动机,动力从88马力提升到115马力,扭矩从280牛米升至320牛米;云内YN27发动机升级为D25发动机,动力由115马力升至150马力,扭矩从320牛米升至400牛米;福康2.8升发动机,在动力、可靠性上也做了全面提升,是国六阶段唯一无EGR发动机。

最为经典的是源自五十铃技术的4JB1发动机,在国六阶段动力从100马力升级到120马力,扭矩从280牛米升至325牛米。好马配好鞍,与之搭配的是与宝马同一品牌变速箱,采用磨齿工艺,换挡更流畅,兼具操控性与节油性。此外,值得一提的是,奥铃经典版采用和福特大皮卡同一品牌转向机,方向盘拉轻货不飘,拉重货不沉,轻载时,司机也可以单手握方向盘,有如乘用车一般,大大提升了可操控性。

除了动力升级,全新奥铃经典版在内饰、舒适性、配置方面也做了全面提升。新车采用轿车化仪表板,搭配多功能方向盘和自动巡航功能,并增加6处储物空间。同时,驾驶室空间更大,座椅更加舒适,使车主的驾驶过程更加省心、舒心。熟悉的脸,升级的芯,动力更好、承载力更强的全新奥铃经典版,定能让客户真正实现“多拉快跑”的心愿。

百万用户选择 口碑是最好名片

何为经典?经典产品不但需要有卓越品质,更需要有耐久不衰的质量保证。

奥铃经典版通过对整车品质严格把关,寿命与同级别车型相比高20%,故障率低20%,可比普通轻卡多用2~3年,这也正是该车百万公里用户超千人的原因。在上市活动现场,“中国奥铃百万公里名人堂”迎来了两位新成员,王海鹰、梁松先两位卡友用他们的故事诠释了为何用户口碑是奥铃最好的名片。

卡友王海鹰来自苏州,目前拥有五辆奥铃经典版轻卡,作为主要运送快递的用户,他对车辆性能有着严苛要求。“我所使用的奥铃经典版行驶里程已超过112万公里,几乎没出过什么大毛病,车辆性能非常良好,现在依然可以满足快递运输的高时效性要求。我有信心,如果有一天我的奥铃经典版需要更换,那也一定是法规升级原因,车辆本身绝对没问题。”

卡友梁松先拥有两辆奥铃经典版轻卡,平时主要在无锡做城配,2013年购买第一辆奥铃经典版,2017年又购买了第二辆。“连续购买奥铃经典版就是因为它可靠性高,我第一辆车用了七年,没有出过什么问题,目前每天得出车三四次,可以说经受住了常年连轴转考验。此次参加奥铃经典版上市活动非常高兴,我希望通过介绍自己的经历让更多人认识奥铃这款好车。”

在本次全新奥铃经典版上市活动现场,同样亮相的还有多款奥铃旗下其他品系产品。无论你是追求性价比,还是要求物流的极致高效,亦或是在细分市场有任何特殊需求,奥铃青春三浪、奥铃速运先锋版、奥铃大黄蜂、奥铃小钢炮、奥铃北极熊等多款车型都可以满足这种个性需求。

你想要的,奥铃都有。相信凭借技术、服务、营销上的综合实力,奥铃将为长三角乃至全国的卡车用户提供更加坚实、可靠的动力保障,助力物流产业创新、高效发展。

家 具 行 业 ERP 成 功 之 路——生产管理如何实施ERP

生产管理是家具制造业的核心,也是ERP项目实施的难点,本篇从管理的角度分析一下,家具工厂应当如何实施ERP生产管理模块?

目前市面上大部份的通用ERP系统,生产管理都非常复杂,什么MPS、MRP、产能负荷分析、生产排程等ERP专用术语众多,操作者使用系统时往往就象云里雾里一样,如此,使用效果当然不会很好了!我们根据在家具行业大量成功实施ERP的一些经验,总结出,ERP中的生产管理只要提炼的好,其实并不复杂!我们通常将生产管理分为四个阶段:建令、开令、跟令、结令。

一、 建令管理:就是制造命令的建立,建令阶段主要管理好以下几件事:1.生产计划排程;

2.生产计划调整。

对于制造业而言,最令人感到困扰且无助的问题便是生产排程计划的实时性及可参考性。通常制造业的生产环境因为有许多的不确定因素,如产能上的限制,不确定的订单插单,订单交期的变更及前后生产排序的选择等都将导致生产排程计算上的困难,如果再依赖生管人员以人工的经验法则临时派工,常常导致生管人员疲于奔命的调整生产排程,而假如生管人员一时的错误判断将导致工作分派紊乱,生产现场无法有效的进行制造生产的问题生成。想要以有限的产能及应付订单接单的不确定性来满足客户订单,就必须运用符合家具行业生产特性的生产排程系统来处理, 因为每家ERP系统的排程方法不尽相同,这里就不对详细的操作过程进行说明,总之建令阶段的重点就是帮助生管人员排好主生产计划,并且排好后的生产计划,还可以再辅以手工调整,直至该计划可以真正执行。

二、 开令管理:是指制令的实际开工,开令阶段主要管理以下几件事:1.尾数结转;2.采购进度查询;3.生产计划一览;4.材料领用一览;5.部件领料一览;6.裁板分析。

1.部件尾数结转:生管下达制令实际开工时,首先可通过系统自动分析一下部件仓中是否存在之前已结制令的剩余可用部件,如果有,可通过系统自动结转到本制令中,以减少本制令部件的生产量,这个动作我们称之为尾数结转;2.采购进度查询:在制令实际开工前,必须要通过采购进度查询检查物料的到位状况,物料都没到位,生产当然无从谈起了;3.生产计划一览/4.材料领用一览/5.部件领用一览:物料到位之后,就要将各车间需要生产的部件清单、需要领用的部件、材料下达给各相关部门,使各单位做好生产前准备;6.裁板分析:家具厂生产开料时最重要的一项事情就是进行裁板分析,裁板分析就是将已排好的生产计划,由系统自动按最优的方案产生裁板图,产生板料领料单及余料自动回收等动作,帮助板式家具企业在大板裁小板时,即能满足小板的尺寸、数量的要求,又能极大地提高大板的利用率,大大提高了设计裁板方案的工作效率,最终大大降低这些材料的生产成本。

三、 跟令管理:是指制令生产过程中的跟踪管理,跟令阶段主要管理好以下几件事:1.领料;2.重工;3.报废;4.补料;5.入库;6.进度查询。

1.领料在管理上通常分为计划领料和非计划领料,计划领料只能根据制令的定额进行限额领料,超出标准系统将禁止领用,非计划领料,针对计划外的领料由相关人员审核通过后方能领用;2.重工:生产过程中发生的因品质不良需重复加工过程时,要通过系统的重工单来记录并管理;3.报废:生产过程中发生的因品质不良需要报废该生产部件时,要通过系统的报废单来记录并管理;4.补料:因重工、报废所致,需要通过建立补料单来审请领料,并且系统要记录补料的责任部门及补料的原因是主动补料,还是被动补料,方便以后进行现场绩效考核;5.入库:当生产完毕后,通过入库作业,将部件及产品入到仓库;6.进度查询:生产过程中的任一时刻,都可查询到采购进度、材料领用进度、部件生产进度、 产品生产进度等信息以辅助现场生管人员。

四、 结令管理:是指制令结案后的管理,本阶段主要是对现场人员进行绩效考核,结令阶段主要管理好以下几件事情:1.转尾数;2.用料差异分析;3.投入产出比;4.报废一览;5. 重工一览;6. 补料一览;7.用时一览。

1.转尾数:制令生产完成后,因材料利用率的问题,会存在一些多余的部件,这些部件在结令时系统要自动转入到公用制令中去,以便下一批生产时用到;2.用料差异分析:将该制令实际与标准用料情形进行比较,以作为现场绩效考核的依据之一;3.投入产出比:针对实木、板子、皮、布等材料进行其利用率的计算,以反应现场实际绩效;4.报废一览:将本制令生产过程中的出现的报废进行成本统计,以评估现场的绩效;5.重工一览:将本制令生产过程中出现的重工进行成本统计,以评估现场的绩效;6.补料一览:将本制令生产过程中出现的补料情况进行成本统计,以评估现场的绩效;7.用时一览:将本制令生产过程中实际用时与标准工时进行比较,以评做现场作业绩效。

经过上面的介绍,相信大家应该有了一些清晰的思路,实施生产管理模块时不再会’云里雾里’了,当然一个生产管理模块功能不仅仅是这些,还有很多附属的功能,但主要的管理核心基本都包含在本文当中,也希望本文对正在或即将实施ERP的企业能起到一个抛砖引玉的作用。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • ” 孙女士说,新角色公司虽然被注销了,但之前的经纪人还在领秀时代上班,而且这五次拍摄的薪资也是领秀时代发放的。 另一位已经与领秀时代公司解约的模特说,他交了60
  • 旺仔牛奶面临行业危机时,旺旺的另两个核心业务“米果与休闲零食”同样遭到竞争对手的围剿……  业绩陷入长期停滞  Frost & Sullivan数据显示
  • 前几天买菜得了一小把香葱,这次终于没有一次吃完,灵机一动找来一个口香糖空瓶,学着别人水培小葱的方式,插进去养着每天换水,这几天已经被我吃过两茬了,今天早上做了好
  • [抱一抱][抱一抱][联想]马面裙作为中国传承上千年的一款服饰形制,有着结构清晰,传承明确,穿着方便等特点。多年来,他带领志愿团队,用脚步丈量着河流,义务监督河
  • #原油[超话]# 在震荡区间中就是涨了做空,跌了做多,简单且高效,黄金间给出1835-1833支撑,行情没有企稳,这个支撑点布局多单失败,欧盘最低回撤1827附
  • 我无比想看易烊千玺面试视频,但我知道这是私密视频,广大无理取闹的网友见过谁的面试视频,这么多明星考过编,怎么一个视频都没有,怎么光要易烊千玺的,广大网友怎么光说
  • #饭圈美工[超话]#原创水印昨天刚学会的[允悲][允悲]文案都是我自己想和朋友提供的p1:水玉暖炽+“唯ai真yuan吖”p2:月白星紫+“何妨写最认真的笑话”
  • 时隔不到3月再次发生安全事故并瞒报。时隔不到3月再次发生安全事故并瞒报。
  • 风雨过后不一定有美好的天空不是天晴就会有彩虹所以你一脸无辜不代表你懵懂不是所有感情都会有始有终孤独尽头不一定惶恐可是你总免不了最初的一阵痛但愿你的眼睛只看得到笑
  • #团团·行##2022暑假“三下乡”社会实践#【览美丽非遗,叹大师技艺】2022年7月14日,青岛科技大学赴德州市德城区德州梁子黑陶文化发扬团前往山东省德州市梁
  • 在对错之间徘徊的人,形象不如从错到对的人正面】又到了小周末,广州这摸不透的天气就是上午暴晒[太阳]、下雨暴雨⛈️,最近的拍摄让我的肤色越来越健康了(每次拍摄都是
  • 包括非洲百米冠军、三分之一的南非运动员是否能参赛都还是未知数。包括非洲百米冠军、三分之一的南非运动员是否能参赛都还是未知数。
  • 人心本无染,心静自然清生活要永远清醒,永远温柔,永远知进退,而心之所向要片片明亮,要干净要坦荡,做人也一样,光明磊落、善良勇敢能轻易失去的东西,谈不上多遗憾努力
  • 【推特|翻译】#上野树里[超话]#by《这是可持续的恋爱吗?》官方推特看起来很幸福的2个人,#松重丰# 和 #井川遥# 一起完成拍摄了☺️松重桑高兴地说「能成为
  • #香港留学申请# #英国留学申请# #英国留学中介机构# #出国留学#生活的真谛在于创新,生活的理想在于远大,生活的艺术在于选择,生活的步履在于踏实,生活的乐趣
  • 助力高考 静音72小时为了给考生提供安静的备考环境,高考前夕,各项目管家便在园区、业主群和公示栏内发出“...【奋笔疾书筑梦想 乘风扬帆再起航】十年寒窗磨一剑,
  • 走进山东富锐光学科技有限公司,一面墙壁上展示着合作企业的Logo,直接或间接配套的24家企业中,大部分是青岛港等上市公司及国家“专精特新”企业。“我们正在用‘眼
  • 从这个丝带的缝隙里往下看,第一排的人就这么看着我(学星姐,瞪大眼睛炙热的眼神)我就心想完了……底下一片笑声,然后开始喊再来一遍,不过显然再来一遍不在演出的计划内
  • 为切实落实“乘客满意”的企业核心价值观,更好地服务广大乘客,三十三车队结合自身特点,组织人员到螺蛳湾公交枢纽站站台出站口进行乘客满意度调查工作,为有需求的乘客答
  • 重走青春第0544站 茶卡盐湖,“茶卡”是藏语,意即盐池,也就是青海的盐;它夹在祁连山支脉完颜通布山和昆仑山支脉旺尕秀山之间,湖面海拔3100米,东西长15.8