负载均衡调度算法

本文仅仅是总结LVS和nginx中常使用的负载均衡调度算法

LVS:

轮询(RR):按一次循环的方式将请求调度到不同的服务器上。轮询算法假设所有的服务器处理请求的能力都一样,调度器会将所有的请求平均分配给每个真实服务器

加权轮询(WRR):LVS会考虑每台服务器的性能,并给每台服务器添加一个权值,如果服务器A的权值为1,服务器B的权值为2,则调度器调度到服务器B的请求会是A的两倍

最小连接(LC):把请求调度到连接数量最小的服务器上

加权最小连接(WLC):给每个服务器一个权值,调度器会尽可能保持服务器连接数量与权值之间的平衡

基于局部性最少的连接(lblc):根据请求的目标IP寻找最近该目标IP地址所使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其他可行的服务器

带复制的基于局部性最少连接(lblcr):记录的不是一个目标IP与一台服务器之间的连接记录,它会维护一个目标IP到一组服务器之间的映射关系,防止单点服务器负载过高

目标地址散列调度(DH):通过散列函数将目标IP与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标IP的请求会固定发给该服务器

源地址散列调度(SH):根据源地址散列算法进行静态分配给固定的服务器资源


nginx的upstream模块调度算法:

静态

轮询(rr):同上
权重轮询(wrr):同上

ip_hash(静态调度算法):每个请求按客户端IP的哈希结果分配,当新的请求到达时,先将其客户端的IP通过哈希算法哈希出一个值,在随后的请求中,客户IP的哈希值只要相同,就会被分配至同一台服务器,该调度算法可以解决动态网页的session共享问题。但有时会导致请求分配不均,因为国内大多数公司都是NAT上网模式,多个客户端对应一个外部IP,所以这些客户端会被分配到同一节点服务器,从而导致请求分配不均

动态
fair(动态调度算法):此算法会根据后端节点服务器的响应时间来分配请求,响应时间短的优先分配;Nginx本身不支持fair调度算法,必须下载upstream_fair模块才行
        此算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求;
least_conn:根据后端节点的连接数来决定分配情况,哪个机器连接数少就分发
url_hash:根据访问URL的hash结果来分配请求,让每个URL定向到同一个后端服务器;后端服务器为缓存服务器时效果显著
一致性hash:一般用于代理后端业务为缓存服务,如Squid、Memcached 等的场景;
        一致性hash可以解决后端某个或几个节点宕机后,缓存动荡最小
        nginx不支持,但是Tengine支持

Nginx提供了多种负载均衡调度算法,可以根据实际需求选择适合的算法。以下是常见的Nginx负载均衡调度算法: 1. 轮询(Round Robin):默认的负载均衡算法,按照顺序将请求依次分配给后端服务器,循环往复。 2. 加权轮询(Weighted Round Robin):可以给每个后端服务器设置权重,权重越高的服务器获取到的请求数量就越多。 3. IP哈希(IP Hash):根据客户端的IP地址计算哈希值,将相同IP的请求发送到同一台后端服务器,实现会话保持。 4. 最少连接(Least Connections):将请求发送到当前连接数最少的后端服务器,以实现动态负载均衡。 5. 最快响应时间(Least Time):根据后端服务器的响应时间来选择目标服务器,将请求发送到响应时间最短的服务器上。 这些负载均衡算法可以通过在Nginx配置文件中的`upstream`块中设置`load balancing`指令来进行配置。例如: ```nginx http { upstream backend_servers { round-robin; # 使用轮询算法 server backend1.example.com; server backend2.example.com; } server { listen 80; location / { proxy_pass http://backend_servers; } } } ``` 在上述示例中,`round-robin`指令表示使用轮询算法进行负载均衡。你可以根据需要选择其他算法,并根据实际情况配置后端服务器的地址和权重等信息。 需要注意的是,Nginx负载均衡算法的选择应该根据具体的应用场景和需求来确定,以达到最佳的负载均衡效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值