服务降级
分布式系统中
提高系统高可用的方式之一
当服务器压力剧增的情况下
根据,实际业务情况及流量
对一些服务和页面有策略的不处理,或者换种简单的方式处理
从而,释放服务器资源以保证核心交易正常运作或高效运作
参考文档
http://dubbo.apache.org/zh-cn/docs/user/demos/service-downgrade.html
RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
registry.register(URL.valueOf("override://0.0.0.0/com.foo.BarService?category=configurators&dynamic=false&application=foo&mock=force:return+null"));
可以通过服务降级功能
临时屏蔽某个出错的非关键服务
并定义降级后的返回策略
向注册中心写入动态配置覆盖规则
Dubbo支持两种方式服务降级
mock=force:return+null
强制返回为null
表示消费方,对该服务的方法调用
都直接返回 null 值,不发起远程调用
用来屏蔽不重要服务不可用时
对调用方的影响
mock=fail:return+null
调用失败之后,返回为null
表示消费方,对该服务的方法调用在失败后
再返回 null 值,不抛异常
用来容忍不重要服务不稳定时,对调用方的影响
比如,网络超时、网络不可达等等
来容忍不稳定因素的影响