首页 > 解决方案 > Spring Cloud Loadbalancer 可以和 Netflix Eureka 一起使用而不是 Netflix Ribbon 吗?

问题描述

从 Spring Cloud Greenwich 发布的公告看https://spring.io/blog/2019/01/23/spring-cloud-greenwich-release-is-now-available,我注意到建议替换 Netflix Ribbon使用 Spring Cloud 负载均衡器。

这是否意味着客户端可以使用 Spring Cloud Loadbalancer 连接到在 Netflix Eureka 中注册的服务,而无需使用 Netflix Ribbon?

我试图找到描述如何做到这一点的文档和/或示例,但我没有找到。

标签: spring-cloudspring-cloud-netflix

解决方案


您可以在 Spring Cloud Loadbalancer 的测试中找到示例。所以你必须做的是以下。您必须在其中指定客户端名称及其配置类的位置注释配置类@LoadBalancerClient(如果您想拥有多个客户端,则将其包装起来)。@LoadBalancerClients在该负载均衡器客户端的配置类中,您需要创建一个将返回负载均衡器的 bean。在测试中是RoundRobinLoadBalancer. 然后,您可以使用该负载均衡器 bean 来选择下一个服务实例,该实例又可用于调用您的其他服务。

请参阅此测试:https://github.com/spring-cloud/spring-cloud-commons/blob/master/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTest。爪哇#L132


推荐阅读