概述:Ribbon是客户端负载均衡器,一般搭配Eureka一起使用(是同一家产品)
坐标:https://mvnrepository.com/artifact/com.netflix.ribbon/ribbon/2.7.18
Ribbon的在微服务中的位置:
2 ribbon做微服务远程调用简化开发(其实就是 @LoadBalanced 注解的添加):
@Configuration
public class RestTemplateConfig {
/*
* 注入远程调用
* */
@LoadBalanced //ribbon注解:添加这个注解以后可以通过服务名字掉进行地址的绑定
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
controller类:
2 ribbon做微服务远程调用端负载均衡(客户端负载均衡)
ribbon的负载均衡策略
实现:
编码形式:
均衡策略(若是使用也是我们实现IRule接口自己定义的规则)
@Configuration
public class RibbonRuleConfig {
@Bean
public IRule iRule(){
//或者是自己实现IRule接口的类
return new RandomRule();
}
}
引导类开启支持:
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
//开启自己定义的负载均衡,指明针对哪个服务员实行这个负载均衡策略,注册中心可能有很多个服务,同时指明规则配置类
@RibbonClient(name = "服务提供方的名字",configuration = RibbonRuleConfig.class)
public class EurekaConsumer {
public static void main(String[] args) {
SpringApplication.run(EurekaConsumer.class,args);
}
}
配置文件形式:
EUREKA-PROVIDER: # 生产者的名称(服务名称)
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡策略全类名
基本上就是这个样子!!!!!!