使用zuul、eureka、feign时如何减少延迟
Posted
技术标签:
【中文标题】使用zuul、eureka、feign时如何减少延迟【英文标题】:How to reduce delays when using zuul, eureka, feign 【发布时间】:2019-05-25 05:47:43 【问题描述】:最初重新启动 API 服务时。如果我直接调用 API 服务,它可以工作,但如果我通过 feign 客户端调用它,我会在几秒钟内看到 hystrix 回退消息。如果我通过zuul调用API服务没有运行,我会看到如下错误信息:
com.netflix.zuul.exception.ZuulException: Hystrix 读取超时
我该如何解决这个问题?
【问题讨论】:
虽然这个特殊的问题是众所周知的,但在这类问题中添加一些堆栈跟踪/代码通常是一个好习惯。有助于缩小潜在原因。 【参考方案1】:默认情况下,当上游服务不可用时,Zuul 会抛出异常,而不是抛出 503/404。您需要扩展 ErrorFilter
并使用自定义行为处理异常。
这就是为什么当 API 服务没有运行时你会得到ZuulException
。
此行为已在Zuul swallows 503 exceptions from upstream microservices GitHub 线程中进行了详细讨论。
处理此异常的一些方法在此 SO 线程中进行了说明:Customizing Zuul Exception。
【讨论】:
以上是关于使用zuul、eureka、feign时如何减少延迟的主要内容,如果未能解决你的问题,请参考以下文章
springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin
SpringCloud——Eureka Feign Ribbon Hystrix Zuul等关键组件的学习与记录
Eureka+Feign+Ribbon+Zuul+Hystrix+Config+Bus构建一套SpringCloud项目