七、声明式HTTP客户端Feign

一、什么是Feign?

Feign是Netflix开源的声明式HTTP客户端

github地址

在pom.xml中添加依赖

		<!--feign依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

在启动类上添加@EnableFeignClients注解

在这里插入图片描述
新建UserCenterFeignClient接口
在这里插入图片描述
修改ShareService
在这里插入图片描述
测试:Feign也可以实现负载均衡。

二、Feign的组成

在这里插入图片描述

三、细粒度配置自定义

自定义Feign的日志级别
在这里插入图片描述

1、Java代码的方式指定日志级别

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

2、配置属性方式指定日志级别

在这里插入图片描述

四、全局配置自定义

1、Java代码方式指定日志级别

在这里插入图片描述

2、配置属性方式指定日志级别

在这里插入图片描述

五、支持的配置项

1、代码方式

在这里插入图片描述

2、属性方式

在这里插入图片描述

六、配置最佳实践总结

1、Ribbon配置 VS Feign配置

在这里插入图片描述

2、Feign代码方式 VS 属性方式

在这里插入图片描述
优先级别:

全局代码<全局属性<细粒度代码<细粒度属性

七、Feign的继承

Feign继承官方文档解释
在这里插入图片描述

通常不建议在服务器和客户端之间共享接口。 它引入了紧密耦合,并且实际上也无法以当前形式与Spring MVC一起使用(方法参数映射不被继承)。

八、多参数请求构造

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何使用Feign构造多参数的请求

九、Feign脱离Ribbon使用

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

十、RestTemplate和Feign的比较

在这里插入图片描述

十一、Feign性能优化

1、配置连接池【性能提升15%左右】

pom.xml添加

		<dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

application.yml添加
在这里插入图片描述

2、日志级别

在生产环境中,可以将日志级别设置为basic,不建议设置为full

十二、现有架构总结

在这里插入图片描述

发布了135 篇原创文章 · 获赞 41 · 访问量 4249

猜你喜欢

转载自blog.csdn.net/weixin_41842236/article/details/104463575