知识卡片
三种负载均衡机制:DNS、硬件与软件的取舍
内容
承接[[高性能集群的本质是任务分配,”负载均衡”这个术语存在误导性]],实现层面常见有三类负载均衡机制,各自的定位和取舍完全不同。DNS负载均衡靠DNS解析同一域名返回不同IP来实现,一般用于地理级别的均衡(比如北方用户解析到北京机房IP、南方用户解析到深圳机房IP);优点是简单成本低(负载均衡工作完全交给DNS服务器,无须自己开发维护)、能就近解析提升访问速度,缺点是DNS缓存时间长导致更新不及时(改了配置后仍有用户在访问旧IP)、控制权在域名商手里扩展性差、支持的分配算法少且无法感知后端服务器真实状态(为此对时延和故障敏感的业务,有公司自研了基于HTTP协议的私有DNS即HTTP-DNS,优缺点正好和通用DNS相反)。硬件负载均衡靠专门的硬件设备实现(典型代表F5、A10),性能极强(可支撑100万以上并发,远超软件方案的10万级)、功能全面(支持各层级负载均衡和全面的算法,还自带防火墙、防DDoS等安全能力)、稳定性经过大规模商用验证,但价格昂贵(一台F5的价格堪比一辆中高端汽车)、扩展定制能力差,通常只有资金充裕的大公司才会采用。软件负载均衡靠负载均衡软件实现,代表是Nginx(7层负载均衡,支持HTTP、E-mail等具体协议)和LVS(Linux内核层的4层负载均衡,和协议无关,几乎任何应用都能用,如聊天、数据库);优点是简单(部署维护都容易)、便宜(一台普通Linux服务器批发价约1万元,相比硬件设备是天壤之别)、灵活(可选4层或7层、可通过插件做业务定制),缺点是性能不如硬件(Nginx大约5万/秒,LVS据称可达80万/秒,但都明显低于F5的百万级)、功能不如硬件强大、通常也不具备防火墙防DDoS这类安全能力。三者的本质取舍是”简单成本低但控制力弱→功能强大但价格高昂→性能功能适中但灵活便宜”这条光谱,选择时要看具体业务体量和预算,而不是哪种绝对更好。
结构图:
flowchart TB
A["三种负载均衡机制"]
A --> B["DNS负载均衡<br/>靠DNS解析返回不同IP<br/>用于地理级均衡"]
B --> B1["优点:简单成本低,就近访问更快"]
B --> B2["缺点:缓存导致更新不及时<br/>控制权在域名商,算法少,无法感知后端状态"]
A --> C["硬件负载均衡<br/>专用设备(F5/A10)"]
C --> C1["优点:性能极强(100万+并发)<br/>功能全面+自带安全防护,稳定性高"]
C --> C2["缺点:价格昂贵,扩展定制能力差"]
A --> D["软件负载均衡<br/>Nginx(7层)/LVS(4层)"]
D --> D1["优点:简单便宜(约1万元/台)<br/>灵活可定制"]
D --> D2["缺点:性能不如硬件(5万~80万/秒)<br/>功能与安全能力较弱"]