引入Nacos需要优先排出,如果不接入,请跳过
<!--nacos服务发现依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.0.1.0</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
配置文件需要加入关闭Ribbon即可,不然会报错!
spring.cloud.loadbalancer.ribbon.enabled=false
引入Eureka-Client会自动引入Ribbon,但是新的3.0,就没有引入,就需要我们手动添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
请求进入LoadBalanceInterceptor负载均衡拦截器,
Ribbon实现的负载均衡策略
- com.netflix.loadbalancer.RoundRobinRule :以轮询的方式进行负载均衡。
- com.netflix.loadbalancer.RandomRule :随机策略
- com.netflix.loadbalancer.RetryRule :重试策略。
- com.netflix.loadbalancer.WeightedResponseTimeRule :权重策略。会计算每个服务的权重,越高的被调用的可能性越大。
- com.netflix.loadbalancer.BestAvailableRule :最佳策略。遍历所有的服务实例,过滤掉故障实例,并返回请求数最小的实例返回。
- com.netflix.loadbalancer.AvailabilityFilteringRule :可用过滤策略。过滤掉故障和请
如何定义Ribbon负载均衡的策略
1、自定义IRule Bean使其子类实现是策略对象,比如随机策略
@Bean
public IRule randomRule{
return new RandomRule();
}
原来代码不需要修改,直接使用原来的LoadBalance测试即可
2、修改配置文件,一定在Maven依赖库看到Ribbon才可以(Cloud3.0 Eureka-Client删除了依赖)
Eureka-Client.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
Ribbon 饥饿加载
Ribbon默认是懒加载的,第一次访问时间会变成,开启饥饿加载就可以实现快速访问了,相当于关闭懒加载
ribbon.ReadTimeout=5000
# 饥饿加载,并配置对饥饿加载对服务
ribbon.eager-load.enabled=true
ribbon.eager-load.clients=Eureka-Client
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤