目录
引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
开启两个同名服务实例,进行轮询访问
根据自定义的服务名称进行访问这个服务
1.Ribbon负载均衡规则
- 规则接口是IRule
- 默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询,具体实现是这个类是以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房,一个机架等。而后再对Zone内的多个服务做轮询。
2.负载均衡自定义方式
- 代码方式:配置灵活,但修改时需要重新打包
-
@Bean public IRule randomRule(){ return new RandomRule(); }
- 配置方式:直观,方便,无需重新打包发布,但是无法做全局配置
-
userserver: #你的服务名称 ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则
注意:开启了自定义的代码方式就会自动忽略配置方式
3.饥饿加载
为何要开启饥饿加载,因为在我们第一次加载时候,响应时间比较慢,原因是第一次加服务需要从服务注册列表中拉取服务实例,以及初始化相关的组件到Spring中。开启饥饿加载的相关配置之后这些操作会在服务启动就会完成。
下面是第一次的响应时间需要614ms
- 开启饥饿加载
-
ribbon: eager-load: clients: - userserver
以上就是Ribbon的负载均衡的规则,希望对您有帮助!