Dubbo扩展点应用之六服务动态降级
服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别以释放服务器资源保证核心任务的政策运行。
为什么要使用服务降级呢?这是为了防止分布式服务发送雪崩效应,也就是蝴蝶效应:当一个请求发送超时,一致等待中服务响应,那么在高并发情况下,很多请求都是因为这样一直等待响应知道服务资源耗尽宕机。二宕机之后会导致分布式其他服务调用该宕机的服务也会出现资源耗尽宕机,从而到孩子整个分布式服务都瘫痪——这就是雪崩。具体可参考如下示意图:
Dubbo中服务降级如何实现的呢?主要四种方式:
1、在dubbo管理控制台配置服务降级(屏蔽和容错)
2、指定返回简单值或者null
如果是注解则使用@Reference(mock="return null") @Reference(mock="return 简单值"),也支持@Reference(mock="force:return null")。
3、使用java代码 动态写入配置中心
4、整合hystrix,后续介绍hystrix进行详细介绍。