客户端负载均衡Ribbon
SpringCloud项目已经对负载均衡Ribbon进行了封装,所以使用起来是非常方便的。
所有的负载均衡的策略都是通过IRule接口实现的。
package com.netflix.loadbalancer;
public interface IRule {
Server choose(Object var1);//用来选择一个服务实例
void setLoadBalancer(ILoadBalancer var1);
ILoadBalancer getLoadBalancer();
}
在pom.xml中添加依赖
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon</artifactId>
<version>2.7.18</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
开启负载均衡,默认的策略为RoundRobinRule 轮询策略。
@Configuration
public class BeanConfig {
@LoadBalanced //Ribbon 负载均衡
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
修改负载均衡策略,重写IRule方法,返回对应策略
@Bean
public IRule iRule(){
// return new RandomRule();//随机
return new RetryRule(); //重试
}
测试省略。。。。
Rest请求模版类解读
在日常操作中,基于Rest的方式通常是四种情况,他们分别为:
请求方式 | 作用 | 方法 |
---|---|---|
GET请求 | 查询数据 | getForEntity()/getForObject() |
POST请求 | 添加数据 | postForEntity()/postForObject()/postForLocation() |
PUT请求 | 修改数据 | put() |
DELTE请求 | 删除数据 | delete() |
⚠️:当请求接口相同时,🉑️根据不同的请求方法,判断执行操作