七、声明式HTTP客户端Feign

文章目录

  • 一、什么是Feign?
  • 二、Feign的组成
  • 三、细粒度配置自定义
    • 1、Java代码的方式指定日志级别
    • 2、配置属性方式指定日志级别
  • 四、全局配置自定义
    • 1、Java代码方式指定日志级别
    • 2、配置属性方式指定日志级别
  • 五、支持的配置项
    • 1、代码方式
    • 2、属性方式
  • 六、配置最佳实践总结
    • 1、Ribbon配置 VS Feign配置
    • 2、Feign代码方式 VS 属性方式
  • 七、Feign的继承
  • 八、多参数请求构造
  • 九、Feign脱离Ribbon使用
  • 十、RestTemplate和Feign的比较
  • 十一、Feign性能优化
    • 1、配置连接池【性能提升15%左右】
    • 2、日志级别
  • 十二、现有架构总结

一、什么是Feign?

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

github地址

在pom.xml中添加依赖

		
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

在启动类上添加@EnableFeignClients注解

七、声明式HTTP客户端Feign_第1张图片
新建UserCenterFeignClient接口
七、声明式HTTP客户端Feign_第2张图片
修改ShareService
七、声明式HTTP客户端Feign_第3张图片
测试:Feign也可以实现负载均衡。

二、Feign的组成

七、声明式HTTP客户端Feign_第4张图片

三、细粒度配置自定义

自定义Feign的日志级别
七、声明式HTTP客户端Feign_第5张图片

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

七、声明式HTTP客户端Feign_第6张图片
七、声明式HTTP客户端Feign_第7张图片
七、声明式HTTP客户端Feign_第8张图片
七、声明式HTTP客户端Feign_第9张图片

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

七、声明式HTTP客户端Feign_第10张图片

四、全局配置自定义

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

七、声明式HTTP客户端Feign_第11张图片

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

七、声明式HTTP客户端Feign_第12张图片

五、支持的配置项

1、代码方式

七、声明式HTTP客户端Feign_第13张图片

2、属性方式

七、声明式HTTP客户端Feign_第14张图片

六、配置最佳实践总结

1、Ribbon配置 VS Feign配置

七、声明式HTTP客户端Feign_第15张图片

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

七、声明式HTTP客户端Feign_第16张图片
优先级别:

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

七、Feign的继承

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

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

八、多参数请求构造

七、声明式HTTP客户端Feign_第17张图片
七、声明式HTTP客户端Feign_第18张图片
七、声明式HTTP客户端Feign_第19张图片
如何使用Feign构造多参数的请求

九、Feign脱离Ribbon使用

七、声明式HTTP客户端Feign_第20张图片
七、声明式HTTP客户端Feign_第21张图片
七、声明式HTTP客户端Feign_第22张图片

十、RestTemplate和Feign的比较

七、声明式HTTP客户端Feign_第23张图片

十一、Feign性能优化

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

pom.xml添加

		<dependency>
            <groupId>io.github.openfeigngroupId>
            <artifactId>feign-httpclientartifactId>
        dependency>

application.yml添加
七、声明式HTTP客户端Feign_第24张图片

2、日志级别

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

十二、现有架构总结

七、声明式HTTP客户端Feign_第25张图片

你可能感兴趣的:(Spring,Cloud,Alibaba)