Spring cloud微服务的客户端负载均衡 Ribbon

    在我们已经有了服务注册中心和服务提供者(这里为了节省时间,此项目即是服务提供者,也是服务消费者),下面就尝试创建服务消费者,它主要完成两个目标,发现服务和消费服务。其中发现服务由 Eureak 的客户端完成,而服务消费的任务由 Ribbon 完成。Ribbon 是一个基于 HTTPTCP 的客户端负载均衡器,它可以通过在客户端中配置的 ribbonServerList 重写,扩展成从 Eureka 注册中心中获取服务端列表。同时它也会用 NIWSDiscoveryPing 来取代 IPing, 它将职责委托给 Eureka 来确定服务端是否已经启动。


在实现项目之前,我们需要启动服务注册中心 (单节点和高可用都行)。

Spring cloud微服务的客户端负载均衡 Ribbon


Spring cloud微服务的客户端负载均衡 Ribbon


使用Spring Initializr创建工程 加入Ribbon的依赖。

Spring cloud微服务的客户端负载均衡 Ribbon


在启动类添加@EnableDiscoveryClient注解将自己注册到服务注册中心。

配置application.yml文件

Spring cloud微服务的客户端负载均衡 Ribbon

在启动类创建 RestTemplate的实例,并且使用LoadBalanced注解开启客户端负载均衡。

Spring cloud微服务的客户端负载均衡 Ribbon

在Controller中直接实现 通过RestTemplate转发请求。

Spring cloud微服务的客户端负载均衡 Ribbon

通过浏览器访问 localhost:8888/rest?name=zs 将请求转发到 /hello中 输出结果。

Spring cloud微服务的客户端负载均衡 Ribbon


到这里就实现了客户端的负载均衡。