1.服务降级目标
保证核心服务可用,非核心服务弱可用,甚至不可用
2.服务降级手段
2.1.拒绝部分请求
2.2.关闭部分服务(业务相关)
3.拒绝部分请求:
3.1.拒绝部分老的请求
减轻微服务请求处理数量
确保”新“请求正常响应
RPC队列方式(请求入队,出队时间处理请求时,检查请求在队列请求时间超过一定时间【比如1s】,直接丢弃)
3.2.优先级请求方式
非核心 请求直接丢弃
业务紧密
3.3.随机拒绝方式
随机丢弃一定比例请求
网站一会可用,一会不可用
4.服务层降级架构层次
4.1.集中式
只在网关层实施降级
4.2. 自治式
网关层 -》业务逻辑层-》数据访问层(每层都做降级)
总结:一般 app->nginx->网关层->业务逻辑层->数据访问层->db/cache 请求按照这个层次每一层能够处理的请求数据是递减的,所以如果在网关层实施降级,就会比较难知道业务层真正能处理多少条,所以一般使用自治式。