Fegin的基本(仅供自己参考)

1、RestTemplate的缺点:

 + 代码的可读性差,编码体验不统一

+参数复杂URL难以维护(当你url改变的时候就需要你去改代码。当userservice下面还有其他路径,还必须重复写前缀)

2、Fegin是一个声明式的http客户端,其作用是优雅的帮我们发起http请求

3、依赖和启动(

@EnableFeignClients //开启feign

)(在高版本的springboot中还需要加入一个负载均衡的依赖,有了这个依赖之后需要把ribbon排除)

  <!--feign的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
<!--负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

4、feign的使用方法

5、feign的自定义配置

feign日志级别的配置:

1、通过配置文件来配置:

feign:
  client:
    config:
      default:  #default是全局,所有服务都生效。 如果是某个具体的服务则只有这个服务生效
        logger-level: Full

2、通过java代码来配置

将这个添加到启动类的

@EnableFeignClients(defaultConfiguration = DefaultFeignLog.class)全局配置

 

@FeignClient(name = "user-server",configuration = DefaultFeignLog.class)具体服务的配置
  @Bean
    public Logger.Level log()
    {
        return Logger.Level.BASIC;
    }

三、feign的性能优化手段:使用HttpClietn代替URLConnection;

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



#配置
feign:
  httpclient:
    enabled: true  #开关
    max-connections: 200  #最大连接数
    max-connections-per-route: 50   #单个路径的最大连接数

四、feign的最佳实践:

1、使用继承。service也需要api,controller也需要相同的api,将这个方法提出来写一个接口供他们两个使用。

缺点:service和controller是紧耦合,并且service也需要写参数中的注解

2、抽取:在controller层面将相应的请求的方法写好,然后打包。在其他的微服务只需要导包,然后调用相应的请求方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值