一、服务降级

1、什么是服务降级

当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作

2、降级 Dubbo 服务

可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。

向注册中心写入动态配置覆盖规则:

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"));

其中:

(1)mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。

不调用,直接返回 null。

(2)还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

调用失败后返回 null。

二、设置服务降级

1、屏蔽(mock=force:return+null)

可以在消费者管理台设置服务的屏蔽,就不会远程调用,直接在客户端返回空对象。

2、容错( mock=fail:return+null)

可以在消费者管理页面进行服务容错,容错后,当远程调用失败时,返回空对象。

posted on 2022-01-15 11:39  格物致知_Tony  阅读(55)  评论(0编辑  收藏  举报