Open-Feign整合hystrix降級熔斷實戰記錄
一、服務端
1、配置文件
application.yml
server: port: 9000 spring: application: name: my-test2 #服務的名稱
2、控制層
@RestController public class ShoppingController { @RequestMapping("/myTestBuy2") public String myTestBuy2(){ //用來模擬服務超時 try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } return "購買成功——時間:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); } }
二、客戶端
1、依賴
<!--Open-Feign依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--hystrix依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
2、配置文件
server: port: 8000 spring: application: name: my-test1 #服務的名稱 #允許服務降級配置 feign: hystrix: enabled: true #自定義ribbon的超時時間 設置的要比hystrix-timeoutInMilliseconds超時時間大 ribbon: #指的是建立連接後從服務器讀取到可用資源所用的時間。 ReadTimeout: 10000 #指的是建立連接所用的時間,適用於網絡狀況正常的情況下,兩端連接所用的時間,處理請求的超時時間,默認為5秒。 ConnectTimeout: 10000 hystrix: command: default: execution: isolation: thread: #feign整合hystrix 光設置Hystrix超時沒用的 要配合ribbon超時 timeoutInMilliseconds: 5000 my-test2: url: http://127.0.0.1:9000
3、啟動類
@SpringBootApplication @EnableFeignClients//開啟open-feign @EnableHystrix//開啟降級熔斷服務 public class MyTestApplication1 { public static void main(String[] args) { SpringApplication.run(MyTestApplication1.class,args); } }
4、在控制層當中調用
@RestController public class TestController1 { @Autowired TestService1 testService1; @RequestMapping("/myTestBuy1") public String myTestBuy2(){ return testService1.myTestBuy2(); } }
5、創建一個類實現服務FeignClient接口
@Component public class MyHystrix1 implements TestService1 { @Override public String myTestBuy2() { return "調用失敗,該服務被熔斷——時間:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); } }
6、在服務FeignClient接口上配置FallBack實現類
@FeignClient(name = "my-test2", url = "${my-test2.url}", fallback = MyHystrix1.class) public interface TestService1 { @RequestMapping("/myTestBuy2") String myTestBuy2(); }
三、測試
1、場景一服務正常調用
2、場景二當被調服務停止運行時
隻給兩秒的時間,則自動啟動熔斷
3、場景三當調取服務超時時
熔斷時間根據hystrix設置的時間,我這裡設置的是5秒
4、其他
到此這篇關於Open-Feign整合hystrix降級熔斷實戰記錄的文章就介紹到這瞭,更多相關Open-Feign整合hystrix降級熔斷內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- feign 打印日志不顯示的問題及解決
- 如何解決springcloud feign 首次調用100%失敗的問題
- SpringCloud微服務熔斷器Hystrix使用詳解
- Feign調用傳輸文件異常的解決
- Spring Cloud Hystrix的基本用法大全