服务接口调用---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