什么是Ribbon,怎么实现负载均衡?

时间:2024-03-14 08:09:14

一.

Ribbon 是 Netflix 公司开发的一个负载均衡器(Load Balancer)工具,主要用于在分布式系统中进行客户端侧的负载均衡。它可以集成到微服务架构中的客户端,通过在客户端实现负载均衡算法,来分发请求到多个服务提供者实例。

Ribbon 提供了多种负载均衡算法,包括轮询(Round Robin)、随机(Random)、加权轮询(Weighted Round Robin)等。它还支持服务端列表的动态更新,可以通过注册中心(如Eureka、Consul等)或配置中心(如Spring Cloud Config)来动态获取服务实例列表。

在微服务架构中,每个服务都可能有多个实例运行在不同的主机上,Ribbon 可以根据事先定义好的负载均衡策略,选择合适的服务实例来处理请求,从而实现负载均衡和高可用性。

Ribbon 与 Spring Cloud 紧密集成,在 Spring Cloud 微服务架构中被广泛使用。它通过 RestTemplate、Feign 等客户端组件提供了简单易用的方式来调用远程服务,并且可以通过配置的方式来定义负载均衡策略和服务列表

1.

其实使用Ribbon其实就是使用Eureka,在Eureka中包装了这个

先创建一个Eureka的项目,把依赖加入进去

在配置一下application.yml

再建立两个子项目,分别导入依赖

再分别配置一下配置文件,分n个生产者跟一个消费者

写一个生产者业务

在进入这里

点击这个复制一个启动类

然后再点击这个

在弹出的里面选择这个

然后再新增的虚拟机的地址按照这个格式定义新的端口

然后在消费者端

需要注意的配置

启动类上都要加上这个

而主机上需要加上这个

在消费者端把这个RestTemplate用spring的ioc容器管理起来

这样就能正确的实现负载均衡了