随着数据中心规模和网络行业的高速发展,大型网站的规模体量和存储数据呈现指数级上升。如何处理来自这些海量用户,海量数据的存储和访问需求,给客户提供一个高可用的访问环境,成为了广大厂商必须去思考的问题。
比如我们熟悉的支付宝红包活动,每年都有上亿人次的参与,背后都需要访问后端的业务服务器。业务服务器面临保证访问质量的极大压力。再如微博服务器经常出现爆炸宕机,其实就是在负载均衡方面没有做好。
服务器的性能不够时,可以有两种解决思路:
为了解决高可靠、高并发以及海量数据的存储和访问,负载均衡它起到的核心作用就是把来自客户端的请求合理地分配给后端服务器上的某个节点。具体到原理上就是在负载均衡器上去执行某种算法,根据某种算法把客户端的请求去按照算法分配的结果去响应到实际服务器,再由服务器把相应数据返回给客户端。
无论是用专用硬件设备,还是目前更为流行的软件处理方式,负载均衡方案其实都是要建立一种一对多的映射机制,把一个请求给它映射到多个处理请求的节点。
以下是典型的客户端请求的流量转发流程。首先从网站上发起一个请求会先到 DNS 服务器上进行域名解析。域名解析完成之后会进入公网,经由一些网络设备执行转发,最后走到服务器端的安全处理安全模块。做完安全之后,我们今天要讲的重点内容了——会进行 4 层负载,之后是 7 层的负载,最后转发给后端服务器集群中的某个节点。而且到了服务器集群之后,其实还有一系列负载均衡机制。
七层负载均衡:作用于应用层,负载均衡器提供一个虚拟IP,根据访问用户的HTTP请求头、URL信息将请求转发到特定的主机。主要通过反向代理实现。
四层负载均衡:作用于传输层,负载均衡器提供一个虚拟IP,基于IP地址和端口号进行请求的转发。主要依靠修改IP地址+端口号实现。
硬件负载均衡:一般是在定制的处理器上运行的独立负载均衡服务器。硬件负载均衡方案一般都支持全局负载均衡,并提供全面的、复杂的负载均衡算法,功能强大;并且基于专用的处理器,吞吐量也能做到很高,可以支持单机百万以上的并发。此外硬件负载均衡往往具备防火墙、防DDOS等安全功能。
软件负载均衡:软件负载均衡也是目前主流的互联网厂商所选择的方式。这些厂商他的体量非常大,面对海量的用户端请求处理的负载均衡需求,如果都去采购专用硬件厂商的设备,成本就会非常高。另外,像京东、阿里这类自身有云业务的公司,他们也想做到云管平台的统一灵活管控,这是难以做到的。
从软件层面实现负载均衡,一般可以在任何标准物理设备上运行。软件负载均衡基于软件的方式能够实现非常低的成本和良好的扩展性。目前主要产品有Nginx、HAProxy、LVS等。
基于算网融合硬件平台可以实现面向大规模云计算环境中的负载均衡系统,并且使其既具备软件vLB的开放性、灵活性,又具备硬件vLB的高性能。
相关链接:P4可编程硬件平台