十、http客户端Feign

目录

一、使用Feign客户端

1、修改pom文件

2、在启动类OrderApplication中加入注释

3、创建客户端接口

4、装配UserClient,并且进行远程调用

5、发送请求,查看服务调用情况

二、定义Feigin的配置

方式一:配置文件方式

(1)全局生效:

(2)局部生效:

方式二:Java代码方式

三、Feign的性能优化

Feign底层的客户端实现:

因此优化Feign的性能主要包括:

1、Feigin加入HttpClient的支持:

(1)引入依赖:pom

(2)配置连接池:yml

四、Feign最佳实践

实现方式二:抽取FeiginClient


一、使用Feign客户端

1、修改pom文件


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

2、在启动类OrderApplication中加入注释

十、http客户端Feign_第1张图片

3、创建客户端接口

十、http客户端Feign_第2张图片

4、装配UserClient,并且进行远程调用

十、http客户端Feign_第3张图片

5、发送请求,查看服务调用情况

发现不仅实现了远程调用,还实现了负载均衡

二、定义Feigin的配置

十、http客户端Feign_第4张图片

配置Feign日志有两种方式

方式一:配置文件方式

(1)全局生效:

在yml文件中添加

feign:
  client:
    config:
      default:
        logger-level: FULL
(2)局部生效:
feign:
  client:
    config:
      userservice:
        logger-level: FULL

相较于之前的日志要详细许多

方式二:Java代码方式

十、http客户端Feign_第5张图片

三、Feign的性能优化

Feign底层的客户端实现:

  • URLConnection:默认实现,不支持连接池
  • Apache HttpClient:支持连接池
  • OKHttp:支持连接池

因此优化Feign的性能主要包括:

  • 使用连接池代替默认的URLConnection
  • 日志级别,最好用basic或none
     

1、Feigin加入HttpClient的支持:

(1)引入依赖:pom

        
            io.github.openfeign
            feign-httpclient
        
(2)配置连接池:yml
feign:
  httpclient:
    enabled: true
    max-connections: 200 #最大连接数
    max-connections-per-route: 50 #单个路径的最大连接数

四、Feign最佳实践

十、http客户端Feign_第6张图片

十、http客户端Feign_第7张图片

实现方式二:抽取FeiginClient

1.首先创建一个module,命名为feign-api,然后引入feignstarter依赖

十、http客户端Feign_第8张图片

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

2.order-service中编写的UserClientUserDefaultFeignConfiguration都复制到feign-api项目中

十、http客户端Feign_第9张图片

3.order-service中引入feign-api的依赖

十、http客户端Feign_第10张图片

4.修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包

十、http客户端Feign_第11张图片

5.重启测试

你可能感兴趣的:(微服务学习,http,网络协议,网络)