微服务间的调用
一、使用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/
成功!!
注:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库