问题标签 [spring-cloud-loadbalancer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
364 浏览

spring - 使用自定义配置时,在 Spring Cloud 负载均衡器中启用健康检查将不起作用

发现客户端属性

API 应用程序属性

我的客户端负载均衡器配置如下所示

这是我的配置类

当我启动我的负载均衡器客户端时,其余调用失败并出现以下错误

我或者尝试通过仅使用以下仅使用启用运行状况检查 spring.cloud.loadbalancer.configurations=health-check并导致相同的错误

仅当启用了运行状况检查并且工作正常时才会发生这种.withHealthChecks()情况

自定义配置类上没有@Configuration注释,我也以正确的顺序启动了注册表服务器、api服务器和负载平衡客户端有人可以告诉我问题是什么吗?

0 投票
0 回答
52 浏览

spring-boot - 客户端负载均衡算法

我有 B 的两个微服务被复制为 B1 和 B2,我想向微服务 B1 发送前 100 个请求,然后从微服务 A [Spring 负载均衡器微服务应用程序] 向微服务 B2 发送 100 个请求,那么客户端负载均衡算法是可用于完成此任务。

0 投票
0 回答
64 浏览

spring-cloud - Spring Cloud OpenFeign vs WebClient

对于通过负载平衡客户端(使用 Spring Cloud LoadBalancer)相互通信的基于 Spring Boot 的微服务,应该使用哪个客户端,WebClient 还是 OpenFeign?

根据我的阅读,它们都支持 Spring Cloud LoadBalancer。我知道 WebClient 也支持响应式,但这不是我们需要的功能。

在可预见的未来,这两个客户是否会继续受到 Spring 的支持?

从我所见,Spring 似乎正在推动 WebClient。但是,我仍然在 spring-cloud-openfeign github repo 中看到了开发活动。

OpenFeign 似乎是一种更容易/更清洁的创建客户端的方式,但与 WebClient 相比有什么缺点吗?

0 投票
2 回答
215 浏览

spring-boot - Spring Cloud Kubernetes 的负载均衡问题

我们在 Kubernetes 中运行 Spring Boot 服务,并使用带有 RestTemplate 的 Spring Cloud Kubernetes 负载均衡器功能来调用其他 Spring Boot 服务。我们拥有此功能的主要原因之一是历史原因 - 之前我们使用 Eureka 在 EC2 中运行我们的服务以进行服务发现,并且在迁移之后我们保持 Spring 发现客户端/客户端负载平衡(更新依赖项等)它与 Spring Cloud Kubernetes 项目一起使用)

我们有一个问题,当其中一个目标 pod 发生故障时,我们会在一段时间内收到多次请求失败,java.net.NoRouteToHostException即 spring 负载均衡器仍在尝试发送到该 pod。

所以我对此有几个问题:

  • 发生这种情况时,目标实例不应该自动删除吗?所以它可能会发生一次,但在那之后,目标 pod 列表将被修复?

  • 或者如果没有,我们需要添加一些其他配置来处理这个 - 例如重试/断路器等?

  • 一个更普遍的问题是 Spring 的客户端负载均衡为 Kubernetes 带来了什么好处?没有它,我们的服务仍然可以使用 Kubernetes 内置的服务/负载平衡功能调用其他服务,这应该可以处理 pod 自动关闭的问题。Spring 文档还谈到了能够从 POD 模式切换到 SERVICE 模式(https://docs.spring.io/spring-cloud-kubernetes/docs/current/reference/html/index.html#loadbalancer-for-kubernetes)。但是这种服务模式不就是 Kubernetes 自动做的吗?我想知道这里最简单的解决方案是否不是完全删除 Spring Load Balancer?那我们会失去什么?

0 投票
1 回答
307 浏览

spring-boot - 如何使用 SpringCloudOpenFeign 配置 Spring Cloud LoadBalancer

将工作项目的版本更改为 java 17 导致需要将 spring-cloud-starter-openfeign 增加到 3.0.6(2020.0.0 Spring Cloud 发布系列的一部分)。由于 Spring Cloud Netflix Ribbon 已被弃用并且不包含在 2020.0.0 发布系列中,因此我必须在我的项目中进行一些更改并切换到使用 Spring Cloud LoadBalancer。

看了一些文章后,我得到了以下理解: Feign 是使用 Ribbon 作为 LoadBalancer 的。功能区在属性文件中配置,其中包含所有应用程序客户端的不同主机列表。

我的问题是:

  1. 我应该如何使用 Spring Cloud LoadBalancer,因为我没有为我找到任何易于理解的示例?
  2. 由于我使用的是 SpringCloudOpenFeign 3.0.6,哪一个是合适的 spring-cloud-starter-loadbalancer 版本?我曾尝试使用 3.0.5(但 在创建 bean 期间出现意外异常;嵌套异常是 java.lang.IllegalArgumentException:@FeignClient 接口上不允许使用 @RequestMapping 注释)和 3.1.0(我得到 java.lang. ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties ); 在谷歌上没有找到任何错误的相关信息
0 投票
0 回答
22 浏览

spring-webclient - Spring Cloud Load Balancer - 在同一服务中使用不同的客户端类型

我们目前有许多 Spring Boot 微服务在生产中运行。这些服务使用 Eureka 和 Ribbon 进行负载平衡。我的任务是将负载均衡器切换到 Spring Cloud Load Balancer。

其中一个微服务使用三个不同的客户端:RestTemplate、WebClient 和 FeignClient。WebClient 的用法都是阻塞的(它们都调用 client.get()....block())。我已将属性 spring.cloud.loadbalancer.ribbon.enabled 设置为 false。我还创建了一个扩展 RoundRobinLoadBalancer 的类并覆盖了选择方法,以便我可以看到它实际调用的主机。

到目前为止,一切似乎都运行良好,当我连续调用所有三个客户端时,我可以看到它正在选择不同的主机。

我应该注意在同一服务中使用 Spring Cloud Load Balancer 和所有三种类型的客户端是否有任何问题?

春季启动 2.3.3

Spring Cloud Starter 负载均衡器 2.2.4

0 投票
1 回答
22 浏览

spring-boot - 在 Spring Cloud 负载均衡器中处理自定义错误代码

在我当前的项目中,我们的一个微服务调用另一个微服务的 REST Api,并且在错误场景中它返回一个自定义(469)错误代码。

我在调用服务中使用了负载平衡的休息模板,并且由于 HttpStatus 枚举中不存在 469 错误代码,它引发了 IllegalArgumentException 错误。

是否有任何解决方法可以解决此问题,例如使用原始状态代码而不是将其转换为枚举?

0 投票
1 回答
16 浏览

spring-cloud - Spring Cloud Load Balancer - 有没有办法查看选择了哪个实例?

我们正在从 Ribbon 切换到 Spring Cloud Load Balancer,目前看来一切正常。但是,我希望能够查看在每个请求中选择了哪个实例来验证行为。

是否有调试标志或其他方式来查看 SCLB 在每个请求上选择哪个实例?