使用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项目

15Spring-Cloud_Eureka-Ribbon-Hystix-Feign-Zuul微服务整合

Springcloud之Zuul网关入门

将 Zuul、Hystrix(和 Feign)与 Spring Cloud HATEOAS 一起使用时如何转发标头?