SpringBoot如何使用feign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用和錯誤熔斷
這篇文章主要介紹了SpringBoot如何使用feign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用和錯誤熔斷,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1.第一步,新建兩個(gè)簡單的springboot項(xiàng)目并創(chuàng)建rest接口
demo系統(tǒng)的rest接口

plus系統(tǒng)的調(diào)用接口

2.在項(xiàng)目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)建遠(yuǎn)程調(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)用遠(yuǎn)程接口報(bào)錯,遠(yuǎn)程接口就返回一個(gè)固定的值)需要在配置文件里啟用hystrix

4.在啟動類上加上支持feign的注解就ok了(這里basePackages值是定義client類的包路徑)

5.測試效果展示
調(diào)用plus系統(tǒng)的plusTest接口

demo系統(tǒng)接口時(shí)報(bào)錯(修改代碼-重啟)

返回固定的值

以上就是簡單的feign+hystrix的應(yīng)用
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
idea導(dǎo)入module的正確實(shí)現(xiàn)方法
文章介紹了在IntelliJ IDEA中正確導(dǎo)入Spring Cloud項(xiàng)目module的方法:通過File→New→Module from Existing Sources選擇路徑并點(diǎn)擊OK,隨后右擊pom.xml添加為Maven項(xiàng)目,最后運(yùn)行Maven Install生命周期完成編譯,強(qiáng)調(diào)操作步驟的重要性,避免因失誤導(dǎo)致問題2025-07-07
SpringBoot?熱搜與不雅文字過濾的實(shí)現(xiàn)
本文主要介紹了SpringBoot?熱搜與不雅文字過濾的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringBoot?@InitBinder注解綁定請求參數(shù)的過程詳解
這篇文章主要介紹了SpringBoot?@InitBinder注解綁定請求參數(shù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
Java并發(fā)容器ConcurrentLinkedQueue解析
這篇文章主要介紹了Java并發(fā)容器ConcurrentLinkedQueue解析,2023-12-12

