使用 Hystrix 抛出异常的 Feign 客户端

Posted

技术标签:

【中文标题】使用 Hystrix 抛出异常的 Feign 客户端【英文标题】:Feign client with Hystrix throwing exception 【发布时间】:2019-04-21 20:17:26 【问题描述】:

我需要多次(>50 次)调用服务并汇总响应。所以我决定使用 CompletableFuture with Async 和 CustomExecuter(它自己的线程池)以使其更快,而不是等待服务响应。

我在类路径上使用带有 ApacheHTTP 和 Hystrix 的 feign 客户端。我可以看到它有时可以工作,有时我会在电路打开时遇到异常。

有人可以告诉我并行调用服务是否是正确的方法,还是我应该像循环调用服务那样使用顺序?请记住,线程池不应耗尽。我一直保持以下配置。

apacheHttpClient:
  maxConnections: 10

hystrix:
  threadpool:
    default:
      coreSize: 100

executorService:
  threadPool: 50

【问题讨论】:

【参考方案1】:

你考虑过使用 Vertex 的 feign 吗? “将两个世界中最好的结合在一起:Feign 的简洁语法在 Vertx 的快速、异步和非阻塞 HTTP 客户端上编写客户端 API。” https://github.com/OpenFeign/feign-vertx

【讨论】:

以上是关于使用 Hystrix 抛出异常的 Feign 客户端的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud 异常处理

feign服务端出异常客户端处理的方法

如何微调 Spring Cloud Feign 客户端?

使用feign-hystrix实现断路由-简书

如果使用 Feign.Builder 手动创建 Feign Client,则不调用 Hystrix 回退方法

Feign 自定义 ErrorDecoder (捕获 Feign 服务端异常)