问题出现
在开发的时候,有一个用户请求服务A,服务A通过feign去调用另一个服务的时候报404异常。经过排查日志发现其他用户都能够正常访问,唯独这个用户会出现这个问题。
问题排查
经过在本地还原线上场景后发现,将feign的日志级别调至full
feign: client: config: default: loggerLevel: full
然后用该用户信息发起请求,发现下面这种问题
// 消费者,参数id为null之后,便会出现404异常@GetMapping("/user/{id}")User getById(@PathVariable Integer id);// 生产者@GetMapping("/user/{id}")public User getById(@PathVariable Integer id);
原来,这个时候参数id为空了,请求feign请求的路径正常应该是类似/user/1,结果现在请求路径成了 /user/,也就不出意料地找不到生产者了。
总结
这种请求还是需要对参数进行校验的,否则很容易就出事故了。
![75015e964f1e8c25c1dd8dbbb6a410ce.png](https://i-blog.csdnimg.cn/blog_migrate/9a4e4d45c7583454d2248c38253266c5.jpeg)