服务降级的发生,其实是由于消费者调用服务超时引起的,即从发出调用请求到获取到提供者的响应结果这个时间超出了设定的时限。默认服务调用超时时限为1秒。可以在消费者端与提供者端设置超时时限。
一、创建提供者工程06-provider-timeout
(1) 创建工程
复制02-provider-zk工程,并重命名为06-provider-timeout
(2) 修改依赖
这里不再需要00-api工程了,所以在pom文件中将对00-api工程的依赖删除即可
(3) 定义接口
(4) 定义接口实现类
在com.dubbo.provider包中定义接口的实现类。该实现类中的业务方法添加一个2秒的Sleep,以延长向消费者返回结果的时间
(5) 修改配置文件
二、创建消费者工程06-consumer-timeout
(1) 创建工程
复制06-consumer-downgrade2工程,并重命名为06-consumer-timeout
(2) 添加日志文件
在src/main/resources下添加log4j.properties文件
(3) 定义接口
(4) 实现接口
(
(5) 修改配置文件
(6) 客户端调用类
(7) 效果