Web服务器的负载均衡

七层负载均衡的实现

基于URL等应用层信息

使用Nginx的proxy,功能强大,性能卓越,运行稳定

- 配置简单灵活
- 能够自动剔除工作不正常的后端服务器
- 上传文件使用异步模式
- 支持多种分配策略,可以分配权重,分配方式灵活

内置策略,包括IP Hash、加权轮询;
扩展策略,包括fair策略、通用hash、一致性hash。

加权轮询策略

首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始讲请求分给下一个高权重的机器;
当所有后端机器都down掉时,NGINX会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处在timeout的状态。

IP Hash策略

流程和轮询类似,只是其中的算法和具体的策略有些变化,IP Hash算法是一种变相的轮询算法。

fair策略

根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。

通用Hash、一致性Hash策略

通用Hash比较简单,可以以NGINX内置的变量为key进行hash;
一致性Hash采用了NGINX内置的一致性hash环,支持Memcache。

NGINX配置

http{
  upstream cluster_name {
    server srv1 weight=10;
    server srv2 weight=12;
    server srv3 weight=13;
  }
  server {
    listen 80;
    location / {
      proxy_pass http://cluster_name //反向代理
    }
  }
}

四层负载均衡的实现

通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

LVS实现服务器集群负载均衡有三种方式,NAT、DR、TUN。

Web服务器的负载均衡

上一篇:基于STM32H7的ThreadX+Filex+GUIX+NetXDUO+USBX综合模板发布,史上最强安全认证综合模板,稳如泰山。


下一篇:在 WebAssembly 中实现回调的方式