引言
本文介绍几种负载均衡架构及算法。
总体策略
DNS负载均衡用于实现地理级别的负载均衡;
硬件负载均衡用于实现集群级别的负载均衡;
软件负载均衡用于实现机器级别的负载均衡;
硬件负载均衡
类似路由器、交换机;
优点:
支持各种负载均衡算法;
支持100万并发(一般软件负载均衡也就支持10万并发);
很多设备同时支持负载均衡、防火墙、防DDOS攻击功能;
缺点:
价格高昂;
软件负载均衡
优点:
便宜;
维护和部署简单(安装Ngnix软件即可);
缺点:
并发量远小于硬件负载均衡,Linux服务器上装一个Nginx大概能到5万每秒;
一般不具备防火墙、防DDOS攻击等功能;
DNS负载均衡
实现地理级别的负载均衡;
DNS服务器将域名解析为最靠近用户的主机的IP地址,提升访问速度;
缺点:
DNS缓存不能及时更新,有可能定位到一个已经移走的主机;
除了映射IP地址,没有提供其他的负载均衡算法和策略;
均衡算法
轮询:
负载均衡系统收到请求后,按照顺序轮流分配到服务器上;
算法简单,没有考虑机器的状态;
加权轮询:
分给32核机器的概率是分给16核机器的概率的两倍;
考虑了机器性能,但无法根据机器状态动态调整;
负载最低优先:
根据及其具体状态决定负载均衡策略;
考虑:机器连接数、机器的HTTP连接数、CPU占用率、IO占用率;
性能最佳优先:
根据及其具体状态决定负载均衡策略;
考虑:服务器响应时间;
Hash:
对源IP地址hash决定任务分配到哪台服务器;
对session ID进行hash决定任务分配到哪台服务器,可以保证同一个会话的包都发送到同一台服务器处理;
source: //changsiyuan.github.io/2018/07/15/2018-7-15-Architecture-4
分享&在看