一个很诡异的错误:FeignException$NotFound Feign第二次请求时消费者找不到提供者(第一次请求正常访问)

feign.FeignException$NotFound: status 404 reading

今天在写一个分布式项目的时候,想在消费者的类里请求生产者异步提供的数据,结果遇到了一个非常诡异的错误:第一次请求正常显示,第二次访问报错。请求不到相应的资源,于是我又开始了漫长的找bug之旅…

  1. 使用postman看看生产者提供的接口有没有错误
    一个很诡异的错误:FeignException$NotFound Feign第二次请求时消费者找不到提供者(第一次请求正常访问)
    没有问题!可以正常获得json!
  2. 检查一下FeignClient,是不是请求写错了
    一个很诡异的错误:FeignException$NotFound Feign第二次请求时消费者找不到提供者(第一次请求正常访问)
    检查完毕,都没有问题,这就奇怪了
  3. 打开注册中心瞅一眼,难道是配置错了?
    一个很诡异的错误:FeignException$NotFound Feign第二次请求时消费者找不到提供者(第一次请求正常访问)
    果不其然!再打开配置中心一看,竟然粗心将消费者的name写成了服务提供者者的name,导致二者注册名一样!
  4. 修改消费者的配置,将name值更改为消费者的name一个很诡异的错误:FeignException$NotFound Feign第二次请求时消费者找不到提供者(第一次请求正常访问)
    这下就解决啦!

总结:报这个错误一般的思路是先去检查一下服务提供者是否有正确返回需要的数据,如果不是,那就是提供者代码的错误,否则就是Feign的配置出现了问题,看看配置文件或FeignClient哪里写错了,细心检查一些细枝末节的地方,一定能找见错误的!