spring cloud alibaba(看完即入门)——Feign篇

四、Feign声明式远程调用

4.1、公共模块引入openfeign依赖

<dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-openfeign</artifactId>
         <version>2.2.5.RELEASE</version>
   </dependency>

4.2、在一个模块正常写接口、另一个模块来调用这个接口

1、member模块(被调用模块)正常写接口 2、coupon模块(调用模块)新建一个feign包,建一个接口类,专门调用member模块的接口

3、在接口类上使用@FeignClient("mall-member")指定nacos上的服务名

4、写全 member模块(被调用模块) 接口路径

4.3、在调用模块启动类上使用@EnableFeignClients开启feign

coupon模块(调用者)开启feign, 指定包名 测试调用

4.4、feign性能优化

Feign底层的客户端实现: 1、URLConnection:默认实现,不支持连接池 2、Apache HttpClient:支持连接池 3、OKHttp:支持连接池
因此优化feign主要包括: 1、使用连接池代替默认的URLConnection 2、日志级别,最好用basic或none

引入依赖

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

配置yml

feign:
  client:
    config:
      default: # default 全局配置
        loggerLevel: BASIC #日志级别,BASIC就是最基本的请求和响应信息
  httpclient:
    enabled: true # 支持httpClient的开关
    max-connections: 200 #最大连接数
    max-connections-per-route: 50 # 单个路径的最大连接数

spring cloud alibaba组件集合地址

经验分享 程序员 微信小程序 职场和发展