http客户端Feign

http客户端Feign

文章目录

  • http客户端Feign
    • 定义和使用Feign客户端
    • 自定义Feign的配置
    • Feign的性能优化
    • feign的最佳实践

http客户端Feign_第1张图片
http客户端Feign_第2张图片
http客户端Feign_第3张图片

定义和使用Feign客户端

http客户端Feign_第4张图片

    
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-openfeignartifactId>
        dependency>

http客户端Feign_第5张图片

package cn.itcast.order.clients;


import cn.itcast.order.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient("userService")
public interface UserClient {

    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") Long id);

}

http客户端Feign_第6张图片
http客户端Feign_第7张图片

自定义Feign的配置

http客户端Feign_第8张图片
http客户端Feign_第9张图片

feign:
  client:
    config:
      default:
        logger-level: FULL

http客户端Feign_第10张图片

package cn.itcast.order.config;

import feign.Logger;
import org.springframework.context.annotation.Bean;

public class DefaultFeignConfiguration {

    @Bean
    public Logger.Level logLevel(){
        return Logger.Level.BASIC;

    }
}

http客户端Feign_第11张图片

Feign的性能优化

http客户端Feign_第12张图片
http客户端Feign_第13张图片

    
        <dependency>
            <groupId>io.github.openfeigngroupId>
            <artifactId>feign-httpclientartifactId>
        dependency>
feign:
  httpclient:
    enabled: true   # 支持httpclient的开关
    max-connections: 200 # 最大连接数
    max-connections-per-route: 50 # 单个路径的最大连接数

http客户端Feign_第14张图片

feign的最佳实践

http客户端Feign_第15张图片
http客户端Feign_第16张图片
http客户端Feign_第17张图片
http客户端Feign_第18张图片
http客户端Feign_第19张图片

@EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeignConfiguration.class)

http客户端Feign_第20张图片

你可能感兴趣的:(java,springCloud,feign)