本文为原创文章,转载请注明出处,谢谢
负载均衡
1、原理
- 服务端启动创建临时节点(下图中servers下节点),临时节点数据包含负载信息
- 客户端启动获取服务器列表,并根据负载去连接一个负载较轻的服务器
- 服务端每次接收到客户端的连接,添加自己的负载,客户端断开与自己的连接则减少自己的负载
2、架构图
- Servers:服务器列表父节点
- work Server n :服务器节点
- Client n:客户端节点
3、客户端流程图
4、服务端流程图
5、客户端核心类
- clientRunner:客户端调用入口
- Client:客户端执行接口
- ClientImpl:客户端执行实现
- ClientHandler:连接服务器进行调用处理
- BalanceProvider:负载均衡计算接口
- AabstractBalanceProvider:负载均衡计算抽象类
- DefaultBalanceProvider:默认负载均衡算法实现
- ServerData:服务端数据信息
6、服务端核心类
- ServerRunner:服务端调用入口
- Server:服务端执行接口
- ServerImpl:服务端执行实现
- ServerHandler:服务端负载处理类
- BalanceUpdateProvider:服务端负载更新接口
- DefaultBalanceUpdateProvider:默认服务端更新实现
- RegistProvider:注册服务端节点接口
- DefaultRegistProvider:默认注册服务端节点实现
- ZookeeperRegistContext:zookeeper节点注册实现类