我们目前有许多 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