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

浅谈系统稳定性与高可用保障的几种思路

  一、前言
  高并发、高可用、高性能被称为互联网三高架构,这三者都是工程师和架构师在系统架构设计中必须考虑的因素之一。今天我们就来聊一聊三H中的高可用,也是我们常说的系统稳定性。
  本篇文章只聊思路,没有太多的深入细节。阅读全文大概需要510分钟。
  二、高可用的定义
  业界常用N个9来量化一个系统可用性程度,可以直接映射到网站正常运行时间的百分比上。
  可用性的计算公式:
  大部分公司的要求是4个9,也就是年度宕机时长不能超过53分钟,实际要达到这个目标还是非常困难的,需要各个子模块相互配合。
  要想提升一个系统的可用性,首先需要知道影响系统稳定性的因素有哪些。
  三、影响稳定性的因素
  首先我们先梳理一下影响系统稳定性的一些常见的问题场景,大致可分为三类:
  人为因素
  不合理的变更、外部攻击等等
  软件因素
  代码bug、设计漏洞、GC问题、线程池异常、上下游异常
  硬件因素
  网络故障、机器故障等
  下面就是对症下药,首先是故障前的预防,其次是故障后的快速恢复能力,下面我们就聊聊几种常见的解决思路。
  四、提升稳定性的几种思路
  4。1系统拆分
  拆分不是以减少不可用时间为目的,而是以减少故障影响面为目的。因为一个大的系统拆分成了几个小的独立模块,一个模块出了问题不会影响到其他的模块,从而降低故障的影响面。系统拆分又包括接入层拆分、服务拆分、数据库拆分。
  接入层服务层
  一般是按照业务模块、重要程度、变更频次等维度拆分。
  数据层
  一般先按照业务拆分后,如果有需要还可以做垂直拆分也就是数据分片、读写分离、数据冷热分离等。
  4。2解耦
  系统进行拆分之后,会分成多个模块。模块之间的依赖有强弱之分。如果是强依赖的,那么如果依赖方出问题了,也会受到牵连出问题。这时可以梳理整个流程的调用关系,做成弱依赖调用。弱依赖调用可以用MQ的方式来实现解耦。即使下游出现问题,也不会影响当前模块。
  4。3技术选型
  可以在适用性、优缺点、产品口碑、社区活跃度、实战案例、扩展性等多个方面进行全量评估,挑选出适合当前业务场景的中间件数据库。前期的调研一定要充分,先对比、测试、研究,再决定,磨刀不误砍柴工。
  4。4冗余部署故障自动转移
  服务层的冗余部署很好理解,一个服务部署多个节点,有了冗余之后还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务时间。所以,又往往是通过自动故障转移来实现系统的高可用。即某个节点宕机后需要能自动摘除上游流量,这些能力基本上都可以通过负载均衡的探活机制来实现。
  涉及到数据层就比较复杂了,但是一般都有成熟的方案可以做参考。一般分为一主一从、一主多从、多主多从。不过大致的原理都是数据同步实现多从,数据分片实现多主,故障转移时都是通过选举算法选出新的主节点后在对外提供服务(这里如果写入的时候不做强一致同步,故障转移时会丢失一部分数据)。具体可以参考RedisCluster、ZK、Kafka等集群架构。
  4。5容量评估
  在系统上线前需要对整个服务用到的机器、DB、cache都要做容量评估,机器容量的容量可以采用以下方式评估:
  明确预期流量指标QPS;明确可接受的时延和安全水位指标(比如CPU40,核心链路RT50ms);通过压测评估单机在安全水位以下能支持的最高QPS(建议通过混合场景来验证,比如按照预估流量配比同时压测多个核心接口);最后就可以估算出具体的机器数量了。
  DB和cache评估除了QPS之外还需要评估数据量,方法大致相同,等到系统上线后就可以根据监控指标做扩缩容了。
  4。6服务快速扩容能力泄洪能力
  现阶段不论是容器还是ECS,单纯的节点复制扩容是很容易的,扩容的重点需要评估的是服务本身是不是无状态的,比如:
  下游DB的连接数最多支持当前服务扩容几台?扩容后缓存是否需要预热?放量策略
  这些因素都是需要提前做好准备,整理出完备的SOP文档,当然最好的方式是进行演练,实际上手操作,有备无患。
  泄洪能力一般是指冗余部署的情况下,选择几个节点作为备用节点,平时承担很小一部分流量,当流量洪峰来临时,通过调整流量路由策略把热节点的一部分流量转移到备用节点上。
  对比扩容方案这种成本相对较高,但是好处就是响应快,风险小。
  4。7流量整形熔断降级
  流量整形也就是常说的限流,主要是防止超过预期外的流量把服务打垮,熔断则是为了自身组件或者依赖下游故障时,可以快速失败防止长期阻塞导致雪崩。关于限流熔断的能力,开源组件Sentinel基本上都具备了,用起来也很简单方便,但是有一些点需要注意。
  限流阈值一般是配置为服务的某个资源能支撑的最高水位,这个需要通过压测摸底来评估。随着系统的迭代,这个值可能是需要持续调整的。如果配置的过高,会导致系统崩溃时还没触发保护,配置的过低会导致误伤。
  熔断降级某个接口或者某个资源熔断后,要根据业务场景跟熔断资源的重要程度来评估应该抛出异常还是返回一个兜底结果。比如下单场景如果扣减库存接口发生熔断,由于扣减库存在下单接口是必要条件,所以熔断后只能抛出异常让整个链路失败回滚,如果是获取商品评论相关的接口发生熔断,那么可以选择返回一个空,不影响整个链路。
  4。8资源隔离
  如果一个服务的多个下游同时出现阻塞,单个下游接口一直达不到熔断标准(比如异常比例跟慢请求比例没达到阈值),那么将会导致整个服务的吞吐量下降和更多的线程数占用,极端情况下甚至导致线程池耗尽。引入资源隔离后,可以限制单个下游接口可使用的最大线程资源,确保在未熔断前尽可能小的影响整个服务的吞吐量。
  说到隔离机制,这里可以扩展说一下,由于每个接口的流量跟RT都不一样,很难去设置一个比较合理的可用最大线程数,并且随着业务迭代,这个阈值也难以维护。这里可以采用共享加独占来解决这个问题,每个接口有自己的独占线程资源,当独占资源占满后,使用共享资源,共享池在达到一定水位后,强制使用独占资源,排队等待。这种机制优点比较明显就是可以在资源利用最大化的同时保证隔离性。
  这里的线程数只是资源的一种,资源也可以是连接数、内存等等。
  4。9系统性保护
  系统性保护是一种无差别限流,一句话概念就是在系统快要崩溃之前对所有流量入口进行无差别限流,当系统恢复到健康水位后停止限流。具体一点就是结合应用的Load、总体平均RT、入口QPS和线程数等几个维度的监控指标,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。
  4。10可观测性告警
  当系统出现故障时,我们首先需找到故障的原因,然后才是解决问题,最后让系统恢复。排障的速度很大程度上决定了整个故障恢复的时长,而可观测性的最大价值在于快速排障。其次基于Metrics、Traces、Logs三大支柱配置告警规则,可以提前发现系统可能存在的风险问题,避免故障的发生。
  4。11变更流程三板斧
  变更是可用性最大的敌人,99的故障都是来自于变更,可能是配置变更,代码变更,机器变更等等。那么如何减少变更带来的故障呢?
  可灰度
  用小比例的一部分流量来验证变更后的内容,减小影响用户群。
  可回滚
  出现问题后,能有有效的回滚机制。涉及到数据修改的,发布后会引起脏数据的写入,需要有可靠的回滚流程,保证脏数据的清除。
  可观测
  通过观察变更前后的指标变化,很大程度上可以提前发现问题。
  除了以上三板斧外,还应该在其他开发流程上做规范,比如代码控制,集成编译、自动化测试、静态代码扫描等。
  五、总结
  对于一个动态演进的系统而言,我们没有办法将故障发生的概率降为0,能做的只有尽可能的预防和缩短故障时的恢复时间。当然我们也不用一味的追求可用性,毕竟提升稳定性的同时,维护成本、机器成本等也会跟着上涨,所以需要结合系统的业务SLO要求,适合的才是最好的。
  如何做好稳定性和高可用保障是一个很庞大的命题,本篇文章没有太多的深入细节,只聊了整体的一些思路,主要是为了大家在以后的系统高可用建设过程中,有一套系统的框架可以参考。最后感谢耐心看完的同学。
  作者:新一
  来源:微信公众号:得物技术
  出处:https:mp。weixin。qq。coms4JrbkutRdFB2RyrBzSeg

利率低至3,为什么我不能用经营贷来提前还房贷?消费贷利率低至3。2,经营贷利率低至3,但是为什么我却不能用它们来提前还房贷呢?很多人或许都受到过经营贷等置换房贷的诱惑更低利率更少利息且贷款期间不需要偿还本金。但鲜少有人会将这项时报会客厅丨神农投资陈宇2023年A股仍将震荡分化,重点关注AI医药和消费赛道点蓝字关注,不迷路消费需求回暖企业盈利预期提升市场估值底部机会出现投资机构普遍看多2023年的A股市场。全年行情将走出一条怎样的曲线?哪些赛道会触底反弹哪些风口值得关注?日前,神农万泉河水清古渡余韵长图留客渡口。图留客村品莲轩。图俯瞰万泉河畔留客村。图图图均为封烁摄(人民视觉)图夕阳映照下的蔡家宅一角,屋顶的女儿墙色彩明丽,别具一格。图留客村中古宅的中式屋檐。图图均为琼海市委宣春耕图2月14日,湖南省常宁市罗桥镇庙山村农民在管护农作物幼苗。新华社发(周秀鱼春摄)初春时节,农民抢抓农时,翻整田地,播种育苗,各地呈现出一派春耕农忙景象。2月14日,湖南省常宁市庙前让老年人吃好暖心餐数据来源民政部住房和城乡建设部核心阅读党的二十大报告提出,推动实现全体老年人享有基本养老服务。近年来,安徽省扎实有序推进老年助餐服务行动,鼓励盘活存量资源,支持多元主体参与,加大政12。4万买帕纳梅拉有新后续!前不久,保时捷官网一台标价12。4万元帕纳梅拉遭抢购,随后这辆车被下架。近日,首单用户王先生表示,交易最终未达成,对方傲慢,优惠未达预期。据现代快报,2月3日,记者联系上了首单用户这,才是表白的天花板吧!每一个令人心动的告白都是从一句情话开始每一句情话是爱意的温暖表达是字里行间丝丝入扣的情谊此时此刻就是诉说爱的最好时机长日欣喜,四季与你今天,让我们在温馨浪漫的情话里走遍日照的风景感南方观察惠州点对点接送务工人员助解用工难今年春节期间,惠州人社局开展包机包车包专列活动,接送务工人员节后返岗,减轻了务工人员的负担。据统计,自2020年以来,惠州人社部门通过包机包车包专列等方式,累计服务21372名异地36氪首发迈铸半导体完成1500万PreA轮融资,推进晶圆级微机电铸造技术的量产工艺近日,36氪获悉,晶圆级微机电铸造技术及应用方案提供商上海迈铸半导体科技有限公司(以下简称为迈铸半导体)完成1500万PreA轮融资,本轮融资由老股东海南至华投资合伙企业广州润明策招联金融首度遭列被执行人名录,去年曾因8项违规被罚款290万来源蓝鲸财经2月13日,蓝鲸财经于中国执行信息公开网获悉,招联消费金融有限公司(下称招联金融)于2月11日两次被长沙市中级人民法院列入被执行人名录,执行标的合计为345345元。案欠租闭店,隐瞒债务,靠技术性盈利的KK还能走多远?2月财经新势力文无锈钵山核桃屋漏偏逢连夜雨。首次IPO失败后,熬过六个月排队期,刚刚重新递交招股书的KK集团,又一次深陷负面传闻之中。昨日,有网友发现,KKV位于广州市北京路的独栋
有买恒大期房的吗?好像交不了房了,房贷怎么办?我买了,2023年交房,工地也停工了,群里组织要维权呢,至于房贷的问题,别说交不了房,就是地震塌了,你房贷一毛也不会少!酷拽酷拽从理论上来说房贷你也必须得交,但是你也可以申请破产,每个人退休金的多少是怎样计算出来的?工龄是否作为主要依据?目前,我们养老金有基本统一的计算方式,说实话从计算公式来分析,工龄还是非常重要的。养老保险是多缴多得长缴多得。每多缴费一个月,养老金都能够多提升一点。养老金的计算公式主要包括三部分你经历过哪些关于两代人之间的育儿代沟?现在我家宝宝4岁,孩子是我一个人带,2岁半之前有老人来帮忙带,的确感觉到两代人之间有很大的育儿代沟。简单说几个1尿布VS尿不湿老人喜欢给宝宝用尿布,不喜欢用尿不湿。觉得尿布成本低且你觉得周杰伦现在能算得上是华语乐坛第一人吗?十八年了铁打的周杰伦流水的某某某周杰伦作曲能力确实很屌。华人圈里算比较厉害的没有之一,同时期的很多音乐人,如王力宏这几年作品越来越少与辉煌时不能同日而语,在音乐圈能保持一年一张专辑想入手一个千元内的电脑主机,玩个LOL不卡秒进的那种,有什么推荐?先泼一瓢冷水,想让LOL秒进基本办不到,但是组装一个玩起来很流畅的主机还是没问题,题主说的打印机也肯定支持。组装思路以仅有的一千元来做整套主机,那就必须用到二手产品,否则根本配不出湖人如果交易得到一个可以夺冠的人,谁最合适?湖人现在的问题在哪?戴维斯状态严重不稳定。詹姆斯又老了一岁,得省着用。威少神鬼莫测,且兼容性差。没有能防守的锋线,前场人员年龄偏大。好的射手基本都是后卫,凑不出攻防一体的阵容。所以上个公司延迟发一个月工资,现公司正常发工资。造成工资月份重复,现要求补税怎么办?一般来讲,几乎所有单位都是提供劳动之后的次月发放工资。只有一些效益缴好的单位和机关事业单位才当月发放。2019年开始我们国家实施新的个人所得税计算方法,就是按照综合收入按年计缴个人46岁了,高级会计师,不想上班,想开一家会计服务公司可行吗?你好,看到这个问题,和我有些类似,提点建议吧。我在单位没有辞职,由于工作事不是太多,财务吧这个工作,得时刻追随着形势的变化,特别是税务方面不断更新的优惠政策,否则就会过时了,本着这联想柳传志是真的造成国有资产流失吗?中科院隶属于中华人民共和国国务院,在联想有65股权,后转让了29股权应该经过国务院批准,这个如果没有,就存在侵吞和私分国有资产。中科院在联想还有36股权,对联想应该有监督和否决权。怎么看待一些企业压榨工人工资,无偿加班??企业组织员工加班,本应严格执行劳动法有关规定,每日工作时间不超过8小时,平均每周工作时间不超过44小时。其中,劳动法第四十一条规定,用人单位因生产经营需要,经与工会和劳动者协商一致如果地下城的职业中没有cd,那么大家觉得哪个技能最爽?其实这个问题不用如果,因为DNF中可以依靠装备搭配跟药剂的使用来达到无CD状态,在86版本就有大佬利用无CD套来速刷深渊。巨魂套魔战衣服腰带下装三件套时间支配者肩膀减CD称号及宠物
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网