微服务间的调用
一、使用OpenFeign:
出现错误:
com.netflix.hystrix.exception.HystrixRuntimeException: xxxFeign#xxxx timed-out and no fallback.....
原因:服务调用连续几次失败,超过设定的超时时间,getAllList()接口返回信息是500,实际上userFeign.findById()接口是404。
解决:试了很多种方法,比如按照网上设定feign或者hystris超时时间更长、在@FeignClient()中设置path参数。。。都没用。
最后自己调试了几次,测试了很多次接口,用户信息的服务接口也一切正常,换了RestTemplate方法也不行,这就很怪异。
后面发现我的服务提供者UserController那边id参数是在path上的,即..../user/findById/{id},然后我调用feign的时候是直接传参过去的,
好开心,终于发现了不一样,然后换了一种方法,
然而并没有什么用,还是一样的错误,后来发现,我应该用服务的真实路径,因为我设置了网关,所有请求localhost:8000/help...的
都会转到localhost:18090/...上,即用户信息那个微服务,但是是要原始地址,即直接使用localhost:18090/
成功!!
注: