SpringCloud-Feign的理解与应用

Feign

简介

Spring Cloud引入Feign并且集成了Ribbon实现客户端负载均衡调用,Feign是一个轻量级的rest客户端,简化远程调用,像调用本地方法一样进行远程调用,

Feign的使用步骤

1.引入坐标
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>
2.启动类上配置注解@EnableFeignClients扫描,生成代理对象,注入IOC容器
@SpringBootApplication
@EnableFeignClients
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class);
    }
}
3.配置文件添加如下图

在这里插入图片描述

3.定义一个接口添加FeignClient注解,声明要远程调用得服务名(所有服务名统一写到公共类里面了)

在这里插入图片描述
在这里插入图片描述

4.定义FeignController调用测试

在这里插入图片描述

5.启动各个相关服务测试

注册到注册中心的服务
在这里插入图片描述
测试结果
在这里插入图片描述

既然Feign集成了Ribbon,如何使用呢?

其实在以上步骤完成之后就已经采用默认的轮询负载均衡策略了,如果想换一种策略如何解决呢?(动动脑筋)

Feign也集成了Hystrix,又如何使用呢?

1.配置文件添加如下内容开启Hystrix功能

在这里插入图片描述

2.接口类上设置回调类

在这里插入图片描述

3.MyFallback类如下图所示

在这里插入图片描述

服务熔断如何获取远程服务异常信息

1.接口类上注解参数修改如下图

在这里插入图片描述

2.定义MyFallbackFactory类如下

在这里插入图片描述

3.启动服务测试(略)

注意事项

SpringCloud对Feign进行了增强兼容了SpringMVC的注解 ,我们在使用SpringMVC的注解时需要注意:

1feignClient返回值为复杂对象时其类型必须有无参构造函数。

猜你喜欢

转载自blog.csdn.net/mrhs_dhls/article/details/107899982