一、微服务之间的调用方式
在Spring Cloud
中微服务调用默认是用http
请求,主要通过一下三种 API
- RestTemplate:同步 http API
- WebClient:异步响应式 http API
- 第三方封装:如 openfeign
二、LoadBalancer替代了Ribbon
Ribbon目前已经停止维护,新版SpringCloud(2021.x.x)
用LoadBalancer
替代了Ribbon
。Spring Cloud
全家桶在Spring Cloud Commons
项目中,添加了Spring cloud Loadbalancer
作为新的负载均衡器,并且做了兼容
Nacos 2021版本已经没有自带ribbon的整合,所以无法通过修改Ribbon负载均衡的模式来实现nacos提供的负载均衡模式,需要引入另一个支持的jar包loadbalancer。
三、使用nacos 2021.1版本实现负载均衡
nacos最新版 2021.1版本中
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
四、配置负载均衡策略
4.1 Ribbon载均衡策略
Ribbon有多种负载均衡策略
- 随机 RandomRule
- 轮询 RoundRobinRule
- 重试 RetryRule
- 最低并发 BestAvailableRule
- 可用过滤 AvailabilityFilteringRule
- 响应时间加权重 ResponseTimeWeightedRule
- 区域权重 ZoneAvoidanceRule
4.2 LoadBalancer载均衡策略
LoadBalancer貌似只提供了两种负载均衡器,不指定的时候默认用的是轮询
- RandomLoadBalancer 随机
- RoundRobinLoadBalancer 轮询