亿级流量架构之服务降级思路与方法.docxVIP

亿级流量架构之服务降级思路与方法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
亿级流量架构之服务降级思路与方法 假如看过我前面对服务限流的分析,理解服务降级就很简约了,对于一个景区,平常任凭进出,但是一到春节或者十一国庆这种情况客流量激增,那么景区会限制同时进去的人数,这叫限流,那么什么是服务降级呢? 简约来说就是,将一些不太重要的景区项目砍掉,平常就那么三五八个人,景区可以开放湖中游泳啦,摸鱼啦,捉虾啦,有情况工作人员可以下湖捞你,但是现在客流量大了,工作人员关注不过来,都在湖里闲逛万一沉了不太平安,大手一挥,这个项目砍了,将工作人员安排在其他地方。 在互联网中也有类似的降级措施,像之前双11, 有段时间是只允许下单不允许退单或者改单,这样做目的是什么呢? 还是为了保证服务的可用性,当硬件软件优化到肯定的程度还是有上限,这时候将资源重点倾斜给核心业务,那些不太重要的就砍掉,保证服务的可用性。 服务等级定义 服务等级定义 SLA(Service Level Agreement)是判定压测能否特别的重要依据。压测过程中,通过监控核心服务形态的 SLA 目标数据,可以更直观地了解压测业务的形态。 SLA则是服务商与您达成的正常运转时间保证。 关于这个的具体解释,可以参考阿里云的引见:?服务等级定义SLA ,这儿不过多描述,SLA 分为网络服务和云服务,供应商的在线保证率通常要求达到6个9。 6个9含义 6个9指99.9999%,也就是一个服务有99.9999%概率是平安的,6个9有多平安呢? 2个9 = (1-99%)X24 X 365 = 87.6 小时 = 3.65天 3个9 = (1-99.9%)X24 X 365 = 8.76 小时 4个9 = (1-99.99%)X24 X 365 = 0.876 小时 = 52.56分钟 5个9 = (1-99.999%)X24 X 365 = 0.0876 小时 = 5.256分钟 6个9 = (1-99.9999%)X24 X 365 = 0.00876 小时 = 0.5256分钟 = 31秒 也就是,一年当中,6个9的平安性最多会有31s服务是不行用,相对来说是极高的。 降级处理 兜底数据 这方面有很多例子,比如某些页面挂了会前往寻亲子网。可以对一些关键数据设置一些兜底数据,例如设置默认值、静态值、设置缓存等。 默认值: 设置平安的默认值,不会引起数据问题的值,比如库存为0 静态值:恳求的页面或api无法前往数据,供应一套静态数据呈现,比如加载失败提示重试,或者寻亲子网,或者跳到默认菜单,给用户一个略微好一点的体验。 缓存: 缓存无法更新便使用旧的缓存 限流降级 限流顾名思义,提前对各个类型的恳求设置最高的QPS阈值,若高于设置的阈值则对该恳求直接前往,不再调用后续资源,也就是当流量洪峰到达的时候,可能需要丢弃一部分用户来保证服务可用性,对于丢弃的用户可以供应友好的提示,比如提示用户当前繁忙、稍后重试等。 限流需要结合压测等,了解系统的最高水位,也是在实际开发中应用最多的一种稳定性保障手段。当服务器压力剧增的情况下,依据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运转。 超时降级 对调用的数据设置超时时间,当调用失败时,对服务降级,举个例子,当访问数据已经超时了,且这个业务不是核心业务,可以在超时之后进行降级,比如商品详情页上有推举内容或者评价,但是可以降级显示评价临时不显示,这对次要的用户功能——购物,不产生影响,假如是近程调用,则可以商量?一个双方都可以接受的最大响应时间,超时则自动降级。 毛病降级 假如近程调用的服务器挂了(网络毛病、DNS毛病、HTTP服务前往错误),则可以进行降级, 例如前往默认值或者兜底数据或者静态页面,也可以前往之前的缓存数据。 重试/自动处理 客户端高可用:供应多个可调用的服务地址,这样做 微服务重试:dubbo重试机制 API调用重试:当达到重试次数后,添加访问标记,服务降级,异步探测服务能否恢复。 WEB端:在服务不行用时,web端添加重试按钮或自动重试可以供应更友好的体验。 自动重试需设置重试次数和数据幂等处理 降级开关 在服务器供应支持期间, 假如监控到线上一些服务存在问题,这个时候需要临时将这些服务去掉,有时候通过服务调用一些服务,但是服务依靠的数据库可能存在,网卡被打满了,数据库挂了,很多慢查询等等,此时要做的就是暂停相关的系统服务,也就是人工使用开关降级。开关可以放在某地,定期同步开关数据,通过推断开关值来打算能否做出降级。 开关降级还有一个作用,例如新的服务版本刚开发处在灰度测试阶段,不太确定里面的规律等等能否正确,假如有问题应当可以依据开关的值切回旧的版本。 在服务调用方设置一个flag,标记服务能否可用,另外key可以存储存储在在本地,也可以存储在第三方的配置文件

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档