SpringBoot如何使⽤feign实现远程接⼝调⽤和错误熔断
这篇⽂章主要介绍了SpringBoot如何使⽤feign实现远程接⼝调⽤和错误熔断,⽂中通过⽰例代码介绍的⾮常详细,对⼤家的学习或者⼯作具有⼀定的参考学习价值,需要的朋友可以参考下1.第⼀步,新建两个简单的springboot项⽬并创建rest接⼝
springframework远程代码执行漏洞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及熔断回调类
batis.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();
}
batis.plus.web.client;
import feign.hystrix.FallbackFactory;
import org.apachemons.logging.Log;
import org.apachemons.logging.LogFactory;
import org.springframework.stereotype.Component;
@Component
public class DemoFeignClientFB implements FallbackFactory<DemoFeignClient> {
private static Log logger = Log(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的应⽤
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。