近期又再研究运维市场,今年的金三银四,运维市场再度火爆不说,薪资更是比去年上升了一大截。 而且相关的运维技能并没有改变。
拿一个现在正在招聘的例子来看一下, 这个岗位的薪资是30-50K
可以看到一个30-50k的岗位要求只需要5年以上的运维经验和一年的管理经验;其他的相关技能都没有变化,唯一多了个对限流降级有较好的把控度。
我们作为运维人员有时候太过于注重防守,比如缓存,池化,异步化,负载均衡,消息队列。
这一些为了增加系统的容量。 而限流和降级则关心的是一旦达到了系统的瓶颈时候怎么办, 更看重稳定性;
如果把缓存和异步看作提高系统的战斗力,那限流和降级就是在防御。
核心就八个字: 限流,降级,熔断,隔离
限流顾名思义,需要对各个类型的请求设置最高的QPS阈值,若高于设置的阈值则对该请求直接返回,不再调用后续资源。
限流需要结合压测,了解系统的最高水位,也是在实际开发中应用最多的一种稳定性保障手段。
降级则是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。
降级如果细分,又分为 主动降级和自动降级
而自动降级要细分,又分为:
- 超时降级
- 失败次数达到一定限制降级
- 故障降级
用人话说:
熔断: 就是停止服务。生活中相关的比如股市的熔断,大盘不受控制,就熔断,不提供服务,这是保护大盘的一种方式
降级: 通常是有备用方案。 你从北京到上海,天天做高铁,限制情况特殊,高铁满员,给你改成汽车。
两者的区别
- 降级一般是主动的,有预见性的,熔断通常是被动的,
- 服务A降级以后,一般会有服务B来代替,而熔断通常是针对核心链路的处理。
- 在实际开发中,熔断的下一步通常就是降级。(再不降级,不废了吗)
各类限流算法:
- 计数器法
- 漏桶算法
- 令牌桶算法
还有一块是资源隔离: 让你的系统里,某一块东西,再有故障的情况下,不会耗尽系统所有的资源。
说到底,运维需要跟开发一起,不断的进行系统测试,最大并发测试,然后做好监控和报警,根据实际情况进行优化。