服務降級的發生,其實是由於消費者調用服務超時引起的,即從發出調用請求到獲取到提供者的響應結果這個時間超出了設定的時限。默認服務調用超時時限為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) 效果