SpringCloud-H-OpenFeign

GitHub:https://github.com/spring-cloud/spring-cloud-openfeign

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

 

 接口+注解 -> 微服务调用接口+@FeignClient

Feign在消费端使用

构建 Feign 工程

 -> pom 中引入依赖

 -> yml 中添加配置

server:
  port: 80

eureka:
  client:
    #表示是否将自己注册进EurekaServer 默认为 true
    register-with-eureka: false
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #eureka集群,服务分部注册进集群

-> 启动类

 -> Service 接口

 

 -> Controller

 -> 测试

 注意:

 正确的应该是 -> 消费者服务接口 声明的方法应与提供者暴露的方法保持一致。否则会找不到方法 404

 

 错误如下:

 、


OpenFeign 超时控制

  • 默认等待1秒钟,超过后报错

在某些情况下,服务端接口返回的时间超过1秒钟,默认Feign客户端只等待1秒钟,导致Feign客户端不想等待了,直接返回报错。为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制。

OpenFeign 中天生带着 Ribbon -> 自己支持负载均衡

-> yml 文件中开启配置

server:
  port: 80

eureka:
  client:
    #表示是否将自己注册进EurekaServer 默认为 true
    register-with-eureka: false
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #eureka集群,服务分部注册进集群

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

OpenFeing 日志打印功能

  • Feing提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解Feing中Http请求细节。

对Feing接口的调用情况进行监控和输出

日志级别

  • NONE:默认的,不显示任何日志
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS:除了BASIC中定义的信息外,还有请求和响应的头信息;
  • FULL:除了HEADERS中定义的信息外,还有请求和响应的正文及元数据。

-> 配置日志Bean

 -> yml 文件开启日志

server:
  port: 80

eureka:
  client:
    #表示是否将自己注册进EurekaServer 默认为 true
    register-with-eureka: false
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #eureka集群,服务分部注册进集群

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

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

-> 测试:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

forward93124

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值