一开始搭建网站,只用一台服务器对外提供服务。访问量上来了,一台服务器扛不住了。
就用多个服务器搭建一个集群对外提供服务。但是对外提供的访问入口只有一个比如www.baidu.com.但是实际上请求这个网址,会被发到不同的机器上进行处理。
所有说有了负载均衡以后,我们的请求实际上是先发给负载均衡服务器。就是地址是负载均衡服务器的地址。
负载均衡分类:
最常用的是四层负载均衡好七层负载均衡。
二层负载均衡:负载均衡服务器对外提供一个VIP,即虚IP.集群中不同的机器采用相同的IP地址,但是机器的MAC地址不一样。当负载均衡服务器收到请求后,通过改写报文的目标MAC地址的方式将请求转发到目标机器实现负载均衡。
三层负载均衡:和二层不同的就是集群中的服务器使用不同的IP地址。
四层负载均衡:工作在OSI的传输层,四层负载均衡服务器修改IP地址和端口号发给应用服务器。
七层负载均衡工作在OSI模型的应用层,基于URL等应用层信息实现负载均衡。
比如说有两组WEB服务器,一组是中文语言的,一组是英文语言的。当用户访问的时候,可以根据用户的IP判断用户的语言,然后选择对应的服务器进行负载均衡处理。
四层负载均衡的实现:
四层负载均衡是通过报文中目的地址和端口,再加上负载均衡服务器设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备在收到第一个来自客户端的SYN请求的时候,即通过上述方式选择一个最佳服务器。并对报文中的IP地址进行修改(改为后端服务器的IP),直接转发给服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡服务器相当于一个路由器进行转发。
七层模型可以抵抗SYN攻击,这个流量在负载均衡层会被屏蔽,但是首先负载服务器得能抗住Dos(拒绝服务攻击)
负载均衡算法:
1、轮询
2、比率,每个服务器分配一个比率
3、优先级,给服务器分组,每一组分配一个优先级。