【发布时间】:2023-03-02 21:33:01
【问题描述】:
所以。我们开始使用 Spring Cloud(和 Spring Cloud Netflix)库,以在基于 Spring Boot 的服务中获得服务发现和客户端负载平衡。部分原因是我也错误地,尽管它也支持在这样的设置中似乎非常重要的重试。
Another question 解释说实际上并非如此。很公平,但文件可能已经很清楚了。至少可以让我免于一些错误的假设。
但是在调查了代码之后。我无法弄清楚为什么要使用 Ribbon HttpClient?负载均衡器支持目前是通过 Ribbon 实现的。
但是执行实际 HTTP 请求的代码仅通过 Spring Cloud 抽象 API 处理该请求。因此,当它也可以使用 Spring RestTemplate 默认使用的实现时,专门使用来自 Ribbon 的(现已弃用的)HttpClient 似乎毫无意义。
如果它的行为类似于任何客户端 RestTemplate 被配置为使用或实际行为类似于 Ribbon 客户端并支持配置它以执行应该能够执行的操作,似乎会更容易理解它的行为(比如重试)。
【问题讨论】:
-
Netflix 团队特别要求。
-
不太明白这个。 Netflix 团队特别要求您为 Jersey 调用一个已弃用的包装器,该包装器调用 Apache HttpClient 而不是使用不同的 Spring ClientHttpRequestFactory 来获取实际的 HTTP 客户端?据我所知,RibbonClientHttpRequestFactory 需要做的就是解析服务实例地址。
标签: spring-boot spring-cloud netflix