SpringCloud Ribbon

2023-10-31

负载均衡分为服务端负载均衡和客户端负载均衡,SpringCloud Ribbon是基于客户端的负载均衡工具。

客户端负载均衡和服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从Eureka server中获取服务列表,根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。如图:

:

Ribbon负载均衡算法:

随机 :RandomRule

轮询 :RoundRobinRule

最小并发:BestAvailableRule

过滤:AvailabilityFilteringRule

响应时间:WeightedResponseTimeRule

轮询重试:RetryRule

性能可用性:ZoneAvoidanceRule

默认是轮询算法。

如何修改?

一、编码修改模式

1、在消费者模块编写配置类,设置负载均衡规则

@Configuration
public class MyRule {
    @Bean
    public IRule rule(){
        return new RandomRule();
    }
}

2、在消费者模块启动类上添加注解

/*
    配置Ribbon的负载均衡策略 name
    * name:设置 服务提供方的 应用名称
    * configuration:设置负载均衡Bean
 */
@RibbonClient(name="EUREKA-PROVIDER",configuration = MyRule.class)

二、yml配置修改模式

# 配置的方式设置Ribbon的负载均衡策略
EUREKA-PROVIDER: # 设置的服务提供方的 应用名称
  ribbon:
    NFloadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 策略类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringCloud Ribbon 的相关文章

随机推荐