背景:spring cloud 项目中A服务中调用B服务接口报错(方法:DmmService.getBySimpleCode(name) )
1、报错信息:
2、分析原因
刚开始分析的时候没注意到“404”这个错误,只从HystrixRuntimeException分析,
首先HystrixRuntimeException:failed and no fallback available 一般大多是Eureka的问题(超时的问题自行百度):
1)确认下程序是否改动过
2)查询下DmmService所在的服务是否已注册到注册中心(Eureka)中。这点排查没问题
3)如果注册中心没有问题,重启下Eureka服务。(重启后依然报错)
4)重启A,B服务(依然报错)
3、解决办法
后来注意到错误信息404:Caused by: feign.FeignException: status 404 reading DmmService#getBySimpleCode(String)
404 就是路径有问题,但是看代码和配置文件都是正常的没什么问题,解决了很久。
最后跟生产环境对比发现真不知道谁把jar文件启动错了(两个jar基本是一样的,但是有细微差别,已经启动一个月了,o(╥﹏╥)o,怪不得我们查程序是否有过改动的时候没有问题,它报404就是因为错误的jar包里根本没有那个方法(ಥ_ಥ) ~)