随着互联网的快速发展,越来越多的互联网服务面临着极其庞大的并发量,面对庞大的并发,现在的人们是如何解决的呢?本文是我了解到的处理高并发时使用负载均衡的一些知识,我将其写为一篇文章分享给大家,希望能够对大家学习负载均衡有点帮助。
几个基本概念
- 高并发:短时间内对服务器进行大量的请求。
- 高可用:高并发场景下要求服务器具有高可用性
- 负载均衡:在高并发的场景下,我们会有专门的负载均衡服务器来将大量的请求分发到对应的应用服务器上,实现分而治之。
负载均衡
- 四层负载均衡:在高并发场景下,通常在真正的应用服务器前会有一台或多台四层负载均衡服务器,它只有物理层、链路层、网络层和传输层,负载均衡服务器的传输层和客户端的传输层间并不会建立TCP连接,它传输层的作用是拿到客户端请求的端口号,看一眼是否访问的是需要做负载均衡的服务的端口号,如果是会去做负载均衡相关操作,如果不是可能进行其他操作,丢弃或者交给上层处理。
- 负载均衡是数据包级别的转发,相对于路由器来说,它只是会在传输层判断下端口号,因此它可以做到快速的处理大量的请求。
- 做负载均衡时,多台应用服务器应该是镜像的(即完全一样)。
- 做负载均衡时,用户知道的应用服务器的地址其实是负载均衡服务器的,并不是真正的应用服务器地址,当请求到达负载均衡服务器时,负载均衡服务器会将请求转到真正的应用服务器。
不同的负载方式
D-NAT方式
- 基于4层的负载均衡。
- D-NAT的过程: 客户端请求->到达负载均衡服务器,通过D-NAT的方式将目标地址转换为真正的应用服务器地址->将请求给到真正的应用服务器,服务器处理-> 将响应返回到负载均衡服务器,负载均衡服务器会将源地址替换为自己的IP地址返回给客户端-> 客户端接收响应。
- 这种方式需要将真正服务器的网关设置为负载均衡服务器,使得数据包能够返回负载均衡服务器。
- 局限: 客户端的请求一般数据包比较小,而服务端的响应包数据量会比较大,请求和响应都经过负载均衡服务器,这将使得负载均衡服务器的带宽成为高并发的瓶颈。