服务接口调用---OpenFeign

概述

Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需要创建一个接口并在接口上添加注解即可。



总结:就是OpenFeign替换了ribbon+restTemplate

OpenFeign的使用步骤

OpenFeign的80微服务

pom.xml

   <!--openfeign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
   </dependency>

application.yml

server:
  port: 80
spring:
  application:
    name: OpenFeign_Order
eureka:
  client:
    register-with-eureka: true  #表示是否将自己注册进EurekaServer,默认为true
    fetch-registry: true  #是否从EurekaServer抓取已有的注册信息,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

# 设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
  # 指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
  # 指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.czf.springcloud.service.PaymentFeignService: debug

整体逻辑

OpenFeign的超时控制

OpenFeign默认等待1秒钟,超过后报错。如下图所示:

application.yml

# 设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
  # 指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
  # 指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

OpenFeign日志打印功能


配置日志的bean

package com.czf.springcloud.config;

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

@Configuration
public class FeignConfig {
    /**
     * feignClient配置日志级别
     *
     * @return
     */
    @Bean
    public Logger.Level feignLoggerLevel() {
        // 请求和响应的头信息,请求和响应的正文及元数据
        return Logger.Level.FULL;
    }
}

application.yml需要增加的配置

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.czf.springcloud.service.PaymentFeignService: debug

后台日志查看

posted @ 2021-03-26 09:41  C紫枫  阅读(105)  评论(0)    收藏  举报