Ribbon负载均衡

什么是Ribbon

Ribbon是Netflix开发的一个基于HTTP和TCP的客户端负载均衡器,它能够将客户端的请求分发到多个服务器实例中,实现负载均衡和故障转移,在微服务中一搬Nacos配合Ribbon来使用,Ribbon提供了客户端负载均衡的功能,在Nacos调用服务节点提供服务时,会合理的进行负载。

Ribbon的主要作用

基于客户端的负载均衡:Ribbon是一种基于客户端的负载均衡框架,它将负载均衡的逻辑集成到服务消费者中,通过客户端自己进行负载均衡,避免了服务提供者对负载均衡的依赖,使得系统更加灵活和可靠。

支持多种负载均衡算法:Ribbon提供了多种负载均衡算法,例如轮询、随机、权重等,可以根据不同的业务需求选择不同的负载均衡算法。

支持服务发现:Ribbon支持服务发现,可以自动发现服务提供者的地址和端口号,无需手动配置。它可以与Eureka、Consul等服务注册中心进行集成,实现自动化的服务发现和负载均衡。

支持自定义配置:Ribbon支持自定义配置,可以根据不同的业务场景进行配置,例如超时时间、重试次数、连接池大小等。

集成Spring Cloud:Ribbon是Spring Cloud中默认的负载均衡框架,可以与Spring Cloud无缝集成,实现服务之间的负载均衡。

什么是负载均衡

负载均衡,顾名思义就是将负载分摊到多个系统中进行处理,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

Ribbon负载均衡_第1张图片

为什么要进行负载均衡

1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);

2.提供故障转移,实现高可用;

3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);

4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)

常见的负载均衡算法

1、轮询法

轮询法,就是将用户的请求轮流分配给服务器,就像是挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。

2、随机法

随机法,是随机选择一台服务器来分配任务。它保证了请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子[5]。但是随着任务量的增大,它的效果趋向轮询后也会具有轮询算法的部分缺点。

3、最小连接法

最小连接法,将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。

你可能感兴趣的:(ribbon,spring,cloud,后端)