目录
将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费
分类
- 软件负载 : 软件层,代码层
- 硬件负载 : 硬件层设备
Dubbo负载均衡五大策略说明
实现负载均衡方式 | 机制说明及使用 |
RandomLoadBalance(随机) | 按权重大小概率随机(同抽奖一样) 获取所有服务提供者权重,判断所有服务提供者的权重是否都相等,相等的话随机一个,不相等则按照权重的大小随机,权重大的分配的数量的概率大 |
RoundRobinLoadBalance(轮询) | 按公约后的权重设置轮循比率。 存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。 |
LeastActiveLoadBalance(最少活跃数) | 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差 如果活跃数相同则随机相同,活跃数指调用前后计数差。使慢的提供者收到更少的请求,因为越慢的提供者的调用前后计数差越大。 |
ConsistentHashLoadBalance(一致哈希) | 相同参数的请求总是发到同一提供者 当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动 |
ShortestResponseLoadBalance(最短响应时间算法) | 监控服务的响应时间,并根据响应时间排序,选择响应时间最短的服务器。(2.7.7 release 版本新加的一种负载均衡) |
Dubbo负载均衡五大策略的使用
Provider提供层在Dubbo注解实现负载均衡
//loadbalance="负载均衡机制"
// 随机权重负载均衡 weight : 权重大小
//@DubboService(loadbalance = "random",weight = 20)
//轮询负载均衡
//@DubboService(loadbalance = "roundrobin")
//最小活跃数负载均衡
//@DubboService(loadbalance = "leastactive")
//哈希一致负载均衡
@DubboService(loadbalance = "consistenthash")
public class UserServiceImpl2 implements UserService {
@Autowired
UserDao2 userDao;
}
Consumer消费层
dubbo系列文章
【dubbo系列一】搭建 dubbo 框架_萌小崔的博客-CSDN博客
Thanks