最初重新启动API服务时。如果我直接调用API服务,那么它可以工作,但是如果我通过伪装客户端调用它,则将在几秒钟后看到hystrix后备消息。而且,当我通过zuul调用API服务时,如果该服务未运行,则会看到以下错误消息:
com.netflix.zuul.exception.ZuulException:Hystrix读取超时
我该如何解决这个问题?
答案 0 :(得分:1)
默认情况下,当上游服务不可用时,Zuul引发异常,而不是引发503/404。您需要扩展ErrorFilter
并使用自定义行为处理异常。
这就是为什么当API服务未运行时您得到ZuulException
的原因。
此行为已在Zuul swallows 503 exceptions from upstream microservices GitHub线程中进行了详细讨论。
一些处理此异常的方法在以下SO线程中进行了解释:Customizing Zuul Exception。