Ribbon 介绍
1、概念:Ribbon 负载均衡
2、具体内容
现在所有的服务已经通过了 Eureka(或者其他注册中心) 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之中,而客户端的调用也应该通过 Eureka 完成。而这种调用就可以利用 Ribbon 技术来实现。
Ribbon 是一个服务调用的组件,并且是一个客户端实现负载均衡处理的组件。服务器端实现负载均衡可以使用 Nginx、 HAProxy、LVS 等。
注:ribbon配置是在客户端
开启ribbon
- 导pom,因为
spring-cloud-starter-netflix-eureka-client
中已经配置了ribbon,所以我们不需要单独配置。 - 在RestTempalte 上加上@LoadBalanced注解即可。当然这开启的是默认的。
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
自定义ribbon
和上面差不多只加了两步
- 在springboot扫描不到的新建一个包
@Configuration
public class MySelfRule {
@Bean
public IRule myRule(){
return new RandomRule();
}
}
通过这种方式即可自定义ribbon规则。
-
在启动类上添加注解@RibbonClient(name = “CLOUD-PAYMENT-SERVICE”,configuration = MySelfRule.class)
-
name :表示在注册中心的别名
-
configuration :你自定义的类.class