一、概述
(1)Ribbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过 Spring Cloud 的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。
(2)负载均衡
- 集中式负载均衡:在服务的消费方和提供方之间,如Nginx(负责把访问请求转发至服务的提供方)
- 进程内负载均衡:将负载均衡逻辑集成到消费方,如Ribbon(消费方通过它来获取到服务提供方的地址)
二、RestTemplate调用
- get/postForObject(): 返回对象为响应体中数据转换成的对象,基本上可以理解为是JSON
- get/postForEntity(): 返回对象为 ResponseEntity 对象,包含了响应中的一些重要信息,比如响应头、响应状态码、响应体等。
三、设置负载均衡策略IRule
不需要单独引入包,在spring-cloud-starter-netflix-eureka-server
中已导入
在主启动类扫描不到的地方,新建一个类
@Configuration
public class MySelfRule {
@Bean
public IRule myRule() {
// 定义为随机
return new RandomRule();
}
}
启动类添加RibbonClient注解
@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class)
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class, args);
}
}
- 轮询策略原理:接口请求次数(从1开始计数)% 服务器集群总数量 = 实际调用服务器位置下标