代码配置
用dubbo在进行服务调用时,可能由于各种原因(服务器宕机/网络超时/并发数太高等),调用中就会出现RpcException,调用失败。服务降级就是指在由于非业务异常导致的服务不可用时,可以返回默认值,避免异常影响主业务的处理。
Dubbo使用mock配置来实现服务的降级,mock支持一下两种配置
1、配置boolean值,默认false,如果配置为true,则默认使用接口名+Mock后缀的类来处理降级服务。
dubbo:reference id="testService" interface="com.yang.test.api.TestService" mock="true"/>
比如我们的接口名称是TestService,则mock类名为:TestServiceMock。而且两者必须在同一个包下。
这样在出现非业务异常会调用次方法,现在我们关掉提供者服务,模拟rpc异常。
2、配置mock值为 return null
<dubbo:reference id="testService" interface="com.yang.test.api.TestService" mock="return null" />
此种配置不需要额外类,此配置表示所有的消费者直接返回null。同样的关掉提供者服务,模拟rpc异常。
页面什么都没有,因为返回了null。
控制台配置