SpringBoot如何使用feign實現(xiàn)遠程接口調(diào)用和錯誤熔斷
這篇文章主要介紹了SpringBoot如何使用feign實現(xiàn)遠程接口調(diào)用和錯誤熔斷,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
1.第一步,新建兩個簡單的springboot項目并創(chuàng)建rest接口
demo系統(tǒng)的rest接口
plus系統(tǒng)的調(diào)用接口
2.在項目pom文件里導(dǎo)入feign和hystrix的pom依賴包
<properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <!-- 支持使用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> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3.創(chuàng)建遠程調(diào)用client及熔斷回調(diào)類
package com.mybatis.plus.web.client; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; @FeignClient(name="demo",url="${conf.address.demo}",fallbackFactory=DemoFeignClientFB.class) public interface DemoFeignClient { @RequestMapping("cmpOclOrder/demoFeign") public String testFeign(); }
package com.mybatis.plus.web.client; import feign.hystrix.FallbackFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; @Component public class DemoFeignClientFB implements FallbackFactory<DemoFeignClient> { private static Log logger = LogFactory.getLog(DemoFeignClientFB.class); @Override public DemoFeignClient create(Throwable throwable) { return new DemoFeignClient() { @Override public String testFeign() { return "demo系統(tǒng)接口調(diào)用失敗"; } }; } }
這里的url在配置文件里面有定義(就是需要調(diào)用系統(tǒng)的IP及端口)
如果要支持熔斷(如果調(diào)用遠程接口報錯,遠程接口就返回一個固定的值)需要在配置文件里啟用hystrix
4.在啟動類上加上支持feign的注解就ok了(這里basePackages值是定義client類的包路徑)
5.測試效果展示
調(diào)用plus系統(tǒng)的plusTest接口
demo系統(tǒng)接口時報錯(修改代碼-重啟)
返回固定的值
以上就是簡單的feign+hystrix的應(yīng)用
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解jeefast和Mybatis實現(xiàn)二級聯(lián)動的問題
這篇文章主要介紹了詳解jeefast和Mybatis實現(xiàn)二級聯(lián)動的問題,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10IDEA使用maven創(chuàng)建hibernate項目的實現(xiàn)步驟(圖文)
本文主要介紹了IDEA使用maven創(chuàng)建hibernate項目的實現(xiàn)步驟,包括創(chuàng)建Maven項目,配置Hibernate,以及創(chuàng)建實體類映射到數(shù)據(jù)庫等步驟,具有一定的參考價值,感興趣的可以了解一下2023-08-08Spring指定bean在哪個應(yīng)用加載(示例詳解)
本文通過實例代碼介紹了Spring指定bean在哪個應(yīng)用加載,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-08-08Java17和springboot3.0使用shiro報ClassNotFoundException的解決
本文主要介紹了Java17和springboot3.0使用shiro報ClassNotFoundException的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04SpringBoot整合Groovy腳本實現(xiàn)動態(tài)編程詳解
這篇文章主要為大家介紹了SpringBoot整合Groovy腳本實現(xiàn)動態(tài)編程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Spring Boot中快速操作Mongodb數(shù)據(jù)庫指南
這篇文章主要給大家介紹了關(guān)于Spring Boot中如何快速操作Mongodb的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05