Ribbon是什么
客户端负载均
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。
就好比你去餐厅吃饭,餐厅是服务注册中心,你是消费者,而厨师是服务提供者,Ribbon就相当于你(消费者)选择一个厨师(提供者)为你服务。然后有一些算法,比如轮询、随机、过滤等等不同的选择提供者的方法。
Ribbon的使用
在springcloud中改如何使用Ribbon呢?首先需要在消费者服务上添加一个mvc配置,这个配置类不能被ComponentScan注解扫描到,也就是不可以被启动类扫描到,使用建议新建一个package。
@Configuration
public class MySelfRule {
@Bean
public IRule myRule(){
return new RandomRule(); //随机的客户端负载均衡算法,默认随机
}
}
写完这个配置类后,在到启动类里面去配置
@SpringBootApplication
@EnableDiscoveryClient
@RibbonClient(name = "nacos-payment-provider", configuration = MySelfRule.class) //配置后才能找到mvc里面的配置
public class Order90Application {
public static void main(String[] args) {
SpringApplication.run(Order90Application.class,args);
}
}