调度后方的多台机器,以统一的接口对外提供服务,承担此职责的技术组件被称 为“负载均衡” (Load Balancing)。
利用到多台机器来扩展服务能 力,希望用户的请求不管连接到哪台机器上,都能得到相同的处理。
真正大型系统的负载均衡过程往往是多级的。譬如,在各地建有多个机房,或机房有不同 网络链路入口的大型互联网站,会从 DNS 解析开始,通过“域名” → “CNAME” → “负载调度 服务” → “就近的数据中心入口”的路径,先将来访地用户根据 IP 地址(或者其他条件)分 配到一个合适的数据中心中,然后才到稍后将要讨论的各式负载均衡。
負載均衡分為兩種:四層負載均衡、七層負載均衡。
OSI 七層模型:
现在所说的“四层负载均衡”其实是多种均衡器工作模式的统称,“四层”的意思是说这些工作 模式的共同特点是维持着同一个 TCP 连接,而不是说它只工作在第四层。事实上,这些模式主要都是工作在二层(数据链路层,改写 MAC 地址)和三层(网络层,改写 IP 地址) 上,
单纯只处理第四层(传输层,可以改写 TCP、UDP 等协议的内容和端口)的数据无法 做到负载均衡的转发,因为 OSI 的下三层是媒体层(Media Layers),上四层是主机层(Host Layers),既然流量都已经到达目标主机上了,也就谈不上什么流量转发,最多只能做代理了。