ribbon--重点笔记

一 负载方案

集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如Nginx)。
客户端根据自己的请求情况做负载均衡,Ribbon 就属于客户端自己做负载均衡。

 

 

常见负载均衡算法
随机,通过随机选择服务进行执行,一般这种方式使用较少;
轮训,负载均衡默认实现方式,请求来之后排队处理;
加权轮训,通过对服务器性能的分型,给高配置,低负载的服务器分配更高的权重,均衡各个服务器的压力;
地址Hash,通过客户端请求的地址的HASH值取模映射进行服务器调度。 ip --->hash
最小链接数,即使请求均衡了,压力不一定会均衡,最小连接数法就是根据服务器的情况,比如请求积压数等参数,将请求分配到当前压力最小的服务器上。 最小活跃数

 

Ribbon内核原理

image

 

修改以及自定义负载均衡策略

1,用@RibbonClient

@RibbonClients(value = {
6 // 在SpringBoot主程序扫描的包外定义配置类
7 @RibbonClient(name = "mall‐order",configuration = RibbonConfig.class),
8 @RibbonClient(name = "mall‐account",configuration = RibbonConfig.class)

2,配置文件:调用指定微服务提供的服务时,使用对应的负载均衡算法

修改application.yml
# 被调用的微服务名
2 mall‐order:
3 ribbon:
4 # 指定使用Nacos提供的负载均衡策略(优先调用同一集群的实例,基于随机&权重)
5 NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

 

自定义的话,实现IRule。

 

LoadBalancer

1,排除ribbon的依赖,以及禁用ribbon。

2,自定义LoadBalancer实现类,继承ReactorLoadBalancer接口,重写choose方法。

3,用@LoadBlancerClients注解指定负载均衡策略。

 

posted @ 2026-04-15 22:59  OMGq  阅读(10)  评论(0)    收藏  举报