简介:
SpringCloudRibbon是基于NetflixRibbon实现的一套 客户端 负载均衡的工具
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balacer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。
LB,即负载均衡(Load Balance),在微服务或分布式集群中经常用的一种应用。
负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA.
常用的负载均衡有软件Nginx,LVS,硬件F5
相应的在中间件,例如:dubbo和springCloud中均给我们提供了负载均衡,SpringCloud的负载均衡算法可以自定义。
修改客户端pom文件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
修改客户端application.yml文件:
# 配置eureka
eureka:
client: #客户端注册金eureka服务列表内
register-with-eureka: false #false表示不向注册中心注册自己
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka #设置与Eureka Server交互的地址查询服务和注册服务都需要这个地址。
对ConfigBean进行新注解@LoadBanced 获得Rest时加入Ribbon的配置:
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced//SpringCloudRibbon是基于NetflixRibbon实现的一套客户端 负载均衡工具
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}