一、概述
官网:https://github.com/Netflix/ribbon/wiki
1.Ribbon是什么
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
2.Eureka与Ribbon的组合使用的架构如下图:
二、Ribbon负载均衡演示
1.创建模块cloud-client8001和cloud-client8002和cloud-payment80以及Eureka集群。可以查看https://blog.csdn.net/weixin_62661659/article/details/124271814有详细的搭建步骤。
2.spring-cloud-starter-netflix-eureka-client自带了spring-cloud-starter-ribbon引用,所以再加入了spring-cloud-starter-netflix-eureka-client依赖就相当于加入了Ribbon依赖
3.RestTemplate的使用
官网:https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html
get请求方法
post请求方法
三、Ribbon核心组件IRule
默认的是 轮询
替换随机RandomRule
由于官方文档明确给出了警告:
这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的了。
1、修改cloud-payment80新建package
2.在rule包下新建类Rule
@Configuration
public class Rule {
@Bean
public IRule myRule() {
return