Spring Cloud入门系列(八)- 负载均衡之Open Feign
Open Feign 的超时控制
8001端口的PaymentController新增以下代码:
/**
* openfeign-ribbon 客户端一般默认等待1秒钟
* 故意让它睡眠三秒钟,模拟超时操作
*/
@GetMapping("/openfeign/timeout")
public String openFeignTimeOut() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return serverPort;
}
在80端口的application.yml中增加以下配置:
#设置feign客户端超时时间(OpenFeign 默认支持ribbon)
ribbon:
#指的是建立连接所用时间,适用于网络状况正常情况下,两端连接所用时间
ReadTimeout: 5000
#指的是连接建立后,从服务器获取到可用资源所用时间
ConnectTimeout: 5000
Open Feign 的日志打印功能
Open Feign 的四种日志级别
配置日志Bean
package com.banana.springcloud.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* openfeign的日志bean
* @author layman
* @date 2021/1/17
*/
@Configuration
public class OpenFeignLoggerLevel {
/**
* openfeign的4种日志级别:
* NONE: 默认的,不显示任何日志
* BASIC: 仅记录请求方法、URL、响应状态码以及执行时间
* HEADERS:除了BASIC 中自定义的信息外,还有请求和响应的信息头
* FULL: 除了HEADERS中定义的信息外, 还有请求和响应的正文以及元数据。
*/
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
#feign 日志以什么级别监控那个接口
logging:
level:
com.banana.springcloud.service: debug
测试功能
全日志打印
Open Feign和Ribbon的区别
推荐博客:https://www.cnblogs.com/unchain/p/13405814.html
@FeignClient注解的详细介绍:https://blog.csdn.net/u010889990/article/details/103884187