当API服务最初重新启动时。如果我直接调用API服务,它会工作,但如果我通过foreign客户端调用它,我会看到几秒钟的hystrix后退消息。如果当我通过zuul调用API服务时,它没有运行,我将看到以下错误消息:
com.netflix.zuul.exception.ZuulException:Hystrix读取的超时
如何解决此问题?
默认情况下,Zuul在上游服务不可用时抛出异常,而不是抛出503/404。您需要扩展ErrorFilter
并使用自定义行为处理异常。
这就是为什么当API服务没有运行时,您会得到ZuulException
。
Zuul从上游微服务GitHub线程中吞下503异常中详细讨论了这种行为。
处理此异常的一些方法将在本SO线程中进行解释:自定义Zuul异常。