1、算法

1、轮询:按照请求轮流发送到每个服务器上,适用于服务器性能相同,请求处理时间差别不大的情况
2、加权轮询:在轮询的基础上,根据服务器性能差异给每个服务器一定的权值,然后得到发送的服务器,当请求处理时间差别比较大,可能会出现某一台服务器负载过大的情况
3、最少连接:将请求发送到连接最少的服务器
4、加权最少连接:在最少连接基础上,按照服务器性能,给每台服务器一定的权值
5、随机算法:简单,适合服务器性能差不多的情况

2、实现

1、DNS解析:使用DNS作为负载均衡器,会根据负载情况返回不同服务器的ip地址,大型网站会采用这种方式作为一级负载,内部会使用二级负载再进行分发。
2、修改MAC地址:使用LVS这种链路负载均衡器,根据负载情况修改请求的MAC地址
3、修改IP地址:在网络层修改请求的IP地址
4、HTTP重定向:收到请求后HTTP重定向负载均衡器会将服务器地址写入相应,并返回给浏览器,浏览器重新发起请求
5、反向代理:发生在服务端,客户端不知道发生了代理