范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

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

  一、前言
  高并发、高可用、高性能被称为互联网三高架构,这三者都是工程师和架构师在系统架构设计中必须考虑的因素之一。今天我们就来聊一聊三H中的高可用,也是我们常说的系统稳定性。
  本篇文章只聊思路,没有太多的深入细节。阅读全文大概需要5~10分钟。
  二、高可用的定义
  业界常用 N 个 9 来量化一个系统可用性程度,可以直接映射到网站正常运行时间的百分比上。
  可用性的计算公式:
  大部分公司的要求是4个9,也就是年度宕机时长不能超过53分钟,实际要达到这个目标还是非常困难的,需要各个子模块相互配合。
  要想提升一个系统的可用性,首先需要知道影响系统稳定性的因素有哪些。
  三、影响稳定性的因素
  首先我们先梳理一下影响系统稳定性的一些常见的问题场景,大致可分为三类:
  人为因素
  不合理的变更、外部攻击等等
  软件因素
  代码bug、设计漏洞、GC问题、线程池异常、上下游异常
  硬件因素
  网络故障、机器故障等
  下面就是对症下药,首先是故障前的预防,其次是故障后的快速恢复能力,下面我们就聊聊几种常见的解决思路。
  四、提升稳定性的几种思路
  4.1 系统拆分
  拆分不是以减少不可用时间为目的,而是以减少故障影响面为目的。因为一个大的系统拆分成了几个小的独立模块,一个模块出了问题不会影响到其他的模块,从而降低故障的影响面。系统拆分又包括接入层拆分、服务拆分、数据库拆分。
  接入层&服务层
  一般是按照业务模块、重要程度、变更频次等维度拆分。
  数据层
  一般先按照业务拆分后,如果有需要还可以做垂直拆分也就是数据分片、读写分离、数据冷热分离等。
  4.2 解耦
  系统进行拆分之后,会分成多个模块。模块之间的依赖有强弱之分。如果是强依赖的,那么如果依赖方出问题了,也会受到牵连出问题。这时可以梳理整个流程的调用关系,做成弱依赖调用。弱依赖调用可以用MQ的方式来实现解耦。即使下游出现问题,也不会影响当前模块。
  4.3 技术选型
  可以在适用性、优缺点、产品口碑、社区活跃度、实战案例、扩展性等多个方面进行全量评估,挑选出适合当前业务场景的中间件&数据库。前期的调研一定要充分,先对比、测试、研究,再决定,磨刀不误砍柴工。
  4.4 冗余部署&故障自动转移
  服务层的冗余部署很好理解,一个服务部署多个节点,有了冗余之后还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务时间。所以,又往往是通过"自动故障转移"来实现系统的高可用。即某个节点宕机后需要能自动摘除上游流量,这些能力基本上都可以通过负载均衡的探活机制来实现。
  涉及到数据层就比较复杂了,但是一般都有成熟的方案可以做参考。一般分为一主一从、一主多从、多主多从。不过大致的原理都是数据同步实现多从,数据分片实现多主,故障转移时都是通过选举算法选出新的主节点后在对外提供服务(这里如果写入的时候不做强一致同步,故障转移时会丢失一部分数据)。具体可以参考Redis Cluster、ZK、Kafka等集群架构。
  4.5 容量评估
  在系统上线前需要对整个服务用到的机器、DB、cache都要做容量评估,机器容量的容量可以采用以下方式评估:
  明确预期流量指标-QPS; 明确可接受的时延和安全水位指标(比如CPU% 40%,核心链路RT 50ms); 通过压测评估单机在安全水位以下能支持的最高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.com/s/-4JrbkutRdFB2-RyrBzSeg

詹在笑,库在闹,可我的泪水还是一直在掉2022年NBA全明星之夜,就比赛而言已经近乎完美了。斯蒂芬库里证明了,他是这个星球历史上最神乎其技的投手。单场比赛16记三分,他不仅把保罗乔治保持的全明星单场三分纪录几乎翻了个倍自毁前程!娇娇被道德绑架,发文我撤了,疑让球球狠话吓到从娇娇自曝离开本山传媒,控诉赵本山以来就有着很大的热度,娇娇在几次直播中抨击赵本山,称自己要做第一个和赵本山对着干的人,还有很多证据要交给有关部门,让网友吃了一口大瓜。随着事情的发婚姻的两种猜想湖南卫视21晚开播轻喜风直击婚姻生活甜与痛速配人生,慢炖爱情。互联网时代,当大数据闪婚成为可能,婚姻将成为怎样一种魔幻的存在?2月21日起在湖南卫视优酷开播的轻喜风都市情感剧婚姻的两种猜想通过诙谐而巧妙的剧情,打开了年轻一FindX5系列出道即巅峰?马里亚纳AI算力超A15,还有3A算法加持智能手机发展至今,随着硬件趋向同质化,大多数手机厂商都已进入了瓶颈期。为了提高自己的核心竞争力,自研芯片成为了众多手机厂商的新赛道,国内大厂纷纷宣布了造芯计划。其中近期OPPO就发2K骁龙8再次降价200,比小米12还便宜了准智能手机的更新换代速度非常快,你看就高通骁龙8Gen1旗舰手机而已目前就已经有多款搭载高通骁龙8Gen1处理器的旗舰手机推出,而且价格上也越来越实惠了。小米在去年12月的时候推出出生13天的女婴心硬如石危在旦夕,医生破解多重难关成功救治齐鲁晚报齐鲁壹点记者台雪超通讯员毕乙贺出生仅13天的女婴患有先心病,存在严重的主动脉缩窄,临近年关的一天凌晨,女婴动脉导管痉挛收缩近乎自动闭合,生命危在旦夕。手术中,女婴又一度出现老照片抬着奔驰车的尼泊尔人,美丽的埃及末代公主1979年在伊朗街头拍摄的照片,大量的伊朗女性走上了街头,这些女性在街头高喊着口号,她们在抗议政府最新实行的规定。1979年2月,伊朗什叶派穆斯林领导的革命推翻了巴列维王朝,革命胜冬奥之王,挪威神剧,部部都是维京人后裔彪悍的战斗力今天晚上(20日),北京冬奥会将落下帷幕,挪威队,历史第九次登上金牌榜首,祝贺他们。区区500万人的北欧小国,历届冬奥会获得了400多枚奖牌,神一样的存在。作为冷峻高福利,维京人的脸像鞋拔子一笑就嘴歪,这些大长脸男星,求你们别演戏了娱乐圈中有很多男神,他们五官立体身姿挺拔,仿佛行走的荷尔蒙,收割了无数迷妹。比如朱亚文,不管是在红高粱中,还是在北上广不相信爱情中,都那么英气十足,让女人心动。比如廖凡,虽然长相没富大龙与小8岁妻子裸婚,12年无儿无女,生活终究落得一地鸡毛2022开年简直大瓜吃不停,从赵本山到黄晓明再到张子枫,老中青三代齐上阵。2月18日,被称为最穷影帝的富大龙,官宣了与妻子离婚的消息,从发布的动态来看,两人分开得非常体面。在富大龙谢娜好难过,发微博祝福海涛新婚快乐,却被骂惨了谢娜不仅是湖南台的一姐,也是快乐大本营各位弟弟妹妹们的姐姐,在海涛官宣和沈梦辰领证当天,很多人都送出了祝福。谢娜迟迟没有动静,就有人猜测谢娜和海涛关系闹掰了,她根本没有关注海涛的终
100款特色家常菜,好吃易做,值得大家收藏和参考翻开我的生活日记100款特色家常菜,好吃易做,值得大家收藏和参考。酸辣汤1。准备食材豆腐丝金针菇火腿丝木耳丝萝卜丝等食材均可。2。以上食材先焯一下水待用。3。起锅加入少许的食用油,健康养生常识,荸荠生吃不利于健康,这样吃好吃又健康Hello,大家好,我是农民营养师聊养生。欢迎你和我一起来了解健康养生。这个植物不知朋友认识它吗,它叫荸荠,人们也称它为地下雪梨,江南人参,很多人把它当作水果来吃。有一位医生朋友告如何预防中暑在炎热的夏季或初秋,如果长时间在高温高湿强热辐射天气的环境下工作或活动,可造成体内积存热量逐渐增加,而出汗蒸发散热却越来越少,使体温调节功能发生紊乱,导致人体体温异常升高而发生中暑周琦下家基本确定!太让韩德君失望,辽篮根本没努力周琦下家基本确定!太让韩德君失望,辽篮根本没努力CBA比赛结束之后,对于辽宁男篮的评价来说也是褒贬不一,认为辽宁男篮的总冠军没有任何的含金量,因为广东男篮和浙江广厦的都因为伤病的问滴滴推出新业务,司机和乘客可以自行讲价跑滴滴最想的是什么,毫无疑问就是司机自己能修改价格,想光明正大的问乘客加钱,光明正大的和乘客议价。每个司机都想问乘客加钱议价,但是面对平台严厉的处罚机制,没有司机真敢这么干,否则账射电望远镜让我们走进太空众所周知,人的肉眼能看见的东西十分有限,而世界上存在着无数人的肉眼看不见的微观世界和宏观世界。是显微镜和望远镜扩展和延伸了人的视觉,其中打开通向宇宙的窗户使望远的极限得以扩展的要数如果要给612岁的孩子选一套生物启蒙书,这套一定不能错过我孩子一直喜欢科学,所以也喜欢生物学的相关知识,经常追着我问很多关于生物学的问题,比如,妈妈,人是怎么来的?妈妈,什么是病毒?细菌和病毒是一样的吗?妈妈,植物有生命吗?每次他问我这碧桂园做了一个坏示范销售额连跌5月!跌幅40房财经讯2022年5月份,示范生碧桂园正在做业绩下滑的示范。根据碧桂园披露的5月份未经审核营运数据,2022年5月单月共实现归属碧桂园股东权益的合同销售额约人民币287亿元,归属碧登月50余年后,消失的土星五号去哪了?人人能科普,处处有新知美国土星5号仍是人类历史上使用过的自重最大的运载火箭,高达110。6米,起飞重量3038。5吨总推力达3408吨,月球轨道运载能力45吨,近地轨道运载能力11北斗七星酒斗与汤匙北斗是北天极附近最显著的星象,在今天的人们看来它很像是一把大号汤勺,很多人甚至直接叫它勺子星。古人称它为北斗,是因为它形似殷周时期的酒斗。不同文化中,星星组成的图案被赋予不尽相同的2。5亿光年的直径,竟然一颗恒星都没有,牧夫座空洞有的可怕2。5亿光年的直径,竟然一颗恒星都没有,牧夫座空洞有的可怕!大家都知道,目前天体物理学界,对于宇宙如何产生的主流观点,还是宇宙大爆炸理论,各个星系就是宇宙大爆炸之后留下来的物质,而