springBoot使用feign實現遠程接口調用和錯誤熔斷


1.第一步,新建兩個簡單的springboot項目並創建rest接口

demo系統的rest接口

 

 

 plus系統的調用接口

 

 

 2.在項目pom文件里導入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.創建遠程調用client及熔斷回調類

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系統接口調用失敗";
            }
        };
    }
}

 

這里的url在配置文件里面有定義(就是需要調用系統的IP及端口)

 

如果要支持熔斷(如果調用遠程接口報錯,遠程接口就返回一個固定的值)需要在配置文件里啟用hystrix

 

 

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

 

 5.測試效果展示

調用plus系統的plusTest接口

 

 demo系統接口時報錯(修改代碼-重啟)

 

 返回固定的值

 

 

以上就是簡單的feign+hystrix的應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM