线路故障时的处置分两类:一类是切到备用继续全量服务,一类是收缩服务内容保住核心业务。第二类就是降级,它在备用不足时是唯一可行的选择,但也最容易在现场临时决定,从而做出错误的取舍。代理IP线路的降级要有事先写好的预案,代理IP线路的降级梯度、触发条件与责任分工都要提前定死。本文按五个环节讲降级预案怎么做。
一、先把”降什么”定义清楚
降级的第一步不是设计方案,而是明确业务里哪些部分可以停。这件事必须由业务方参与确认,技术侧无权单独判断。常见的划分是三级:核心动作、辅助动作、增值动作。核心动作中断会造成实际损失,必须保;辅助动作短时中断可以事后补,可以降;增值动作中断只是体验变差,优先降。
业务分级要写成清单,而不是靠现场判断。故障时人的判断会被时间压力扭曲,容易把熟悉的功能当成核心、把陌生的功能当成可停的。清单要在正常时期和业务方一起过一遍,双方确认后签认,这是降级预案能否执行的前提。
二、降级的三级梯度
第一级是收缩并发。停止增值动作,把资源集中给核心与辅助。这一级代价最小,通常能顶住短时问题,恢复也快。
第二级是暂停辅助动作。辅助任务排队等待,等线路恢复后再补做。这一级要有排队上限,否则积压会无限增长——降级时最容易犯的错是把辅助任务全部积压下来,恢复之后一次性放出来,形成二次冲击。
第三级是按业务分组停用。当降级到这一级时,说明问题已经不是短时波动,要做出分组取舍:先停哪些分组、停多久、什么条件下停下一个。这一级的决定权应该在值班负责人手上,且要有明确的止损时间上限。
三级之间要能单独执行,也要能组合。代理IP线路在各梯度下的承接方案要分别写明:哪条线路保核心、哪条线路做排队缓冲、哪条线路在停用分组时释放出来补核心。
三、每级的触发条件
触发条件要写成可判断的数字,而不是”情况严重时”。可行的形式是三选一的组合:错误率超过某值、延迟中位数超过某值、核心动作排队时长超过某值。三个条件里任意两个连续两个周期成立,进入对应梯度。
还要定退出条件。只定进入不定退出的预案会在恢复时出问题——降级容易、回正难。退出条件通常是错误率与延迟同时回到正常范围并保持一段时间,回正按梯度逐级来,不要三级一起撤。
四、执行降级的责任分工
降级执行涉及三件事:判断是否降级、执行技术动作、对外说明影响。三件事的责任人要分开,不能由一人包办。一人包办时最容易出的是对外说明缺失——技术侧默默降级完成,业务方不知道有动作发生,等发现结果不对时已经过了处理窗口。
对外说明的内容要提前准备好模板:降到哪一级、影响到哪些动作、预计多久、什么情况下会进一步降级。这四条每次现场编会漏,写一次模板能长期用。
五、预案要定期演一遍
降级预案和故障切换一样,不演练就等于没有。演练方式很简单:给一个模拟场景,让值班人员按预案走一遍判断与执行,计时并记录卡点。卡点通常是两类——业务分级清单里找不到对应动作,或者降级步骤依赖的人不在。
要比较各家的服务承诺与故障处理方式做参考时,可以查阅 ip333.cn 的「IP平台大全」分类收录的平台信息,把各家的可用性与故障说明放在一起比,判断自家降级梯度是否与外部服务条件匹配,预案里的止损上限也更有依据。
演练半年一次即可,但每次业务分组调整后必须补做一次。批量环境里预案失效的最常见原因是业务结构变了而预案没跟着变——清单还是旧的分组名,现场照着走会走空。降级这件事最终比拼的不是梯度设计得多细,而是那份签认过的业务分级清单有没有一直维护。
问:降级要不要自动执行?
第一级收缩并发可以自动,代价小、可逆。第二级和第三级不建议自动,这两级涉及业务取舍,需要人来承担判断责任。自动降级到停用分组的方案,在误判时的损失远大于人工延迟几分钟。
问:降级期间的数据丢失怎么处理?
要在预案里单独写明哪些动作可以补做、哪些不能。可以补做的走排队,不能补做的要么保核心要么整体停用,中间状态最危险——看起来在跑,实际结果不完整。
