文章目录
- 1、openFeign 中的每个方法中的参数和注解不能少。
- 2、开启日志打印功能
- 3、超时
1、openFeign 中的每个方法中的参数和注解不能少。
如果服务端方法中的数据含有注解,则 客户端 openFeign 中的每个方法中的参数和注解一个不能少,比较完全一致。
客户端 openFeign 代码如下
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping(value = "/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Long id);
}
服务端的代码如下
@RestController
@Slf4j
public class PaymentController {
@GetMapping(value = "/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Long id){
// 业务代码省略
}
}
如上所示,服务端的代码是public CommonResult getPaymentById(@PathVariable("id") Long id)
,
则,openFeign 方法要 完全一致,即 public CommonResult getPaymentById(@PathVariable("id") Long id);
,特别说明的是一定不要省略 @PathVariable("id")
这样的注解。
2、开启日志打印功能
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}
- NONE :默认的,不显示任何日志 ;
- BASIC : 仅记录请求方法、URL、响应状态码及执行时间 ;
- HEADERS :除了 BASIC 中定义的信息之外,还有请求和响应的头信息 ;
- FULL : 除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据 。
在yml 文件中,指定打印的类文件
logging:
level:
com.atguigu.springcloud.service.PaymentFeignService: debug
运行示例如下:
3、超时
OpenFeign 默认等待 一秒钟,超过后报错。
修改超时时间的配置如下:
在 yml 配置文件中,指定超时时间(毫秒)
ribbon:
# 指的是建立连接所用的时间。适用于网络状况正常的情况下,两端连接所用的时间
ReadTimeout: 5000
# 指的是建立连接后,从服务器读取到可用资源所用的时间
ConnectTimeout: 5000