负载均衡模块,源码赏析(内容待完善)

pull/54/head
AmyliaY 5 years ago
parent 141ecfd770
commit 83e70c6051

@ -1 +1,42 @@
努力编写中...
## Dubbo 负载均衡简介
负载均衡,无论在常用的中间件 及 框架中,还是现实生活中,都有所体现。比如,一个团队干活,老大肯定要尽可能把任务均匀合理地分下去,让整个团队能高速运转,能力强的多分点,能力弱的少分点,绝对不能去逮着一个人 让他累到死,让其它人闲着。这样的均匀分配任务及压力的思想 放在开发领域 即是“负载均衡”。它就相当于是一个压力均衡机制,通过各种策略,为集群中的每台服务器合理地分配压力,这样 即能提升整个集群的运行效率,又能尽量避免 某个节点因为压力过大而宕机。
在 Dubbo 中也需要负载均衡机制,将消费者的请求 合理分配到服务提供者集群的各个节点上,以提升集群的整体运行效率 和 避免单个节点压力过大而宕机的问题。Dubbo 提供了4种负载均衡实现缺省为 RandomLoadBalance 加权随机调用,如下。
- RandomLoadBalance加权随机算法按权重设置随机概率
- RoundRobinLoadBalance加权轮询算法按公约后的权重设置轮询比率
- LeastActiveLoadBalance最少响应时间算法使快速响应的服务提供者 接收更多请求,慢的提供者收到更少请求;
- ConsistentHashLoadBalance一致性hash算法相同参数的请求总是发到同一提供者。
## 源码赏析
### LoadBalance接口 和 AbstractLoadBalance
AbstractLoadBalance 实现了 LoadBalance接口是负载均衡的抽象类提供了权重计算的功能。
```java
```
### RandomLoadBalance
```java
```
### RoundRobinLoadBalance
```java
```
### LeastActiveLoadBalance
```java
```
### ConsistentHashLoadBalance
```java
```

Loading…
Cancel
Save