常见的负载均衡算法(以Nginx来举例)

文章介绍了几种负载均衡算法,包括普通轮询、加权轮询(考虑服务器权重)、IP哈希(保持同IP请求到同一服务器)、最少连接(减少高负载服务器的请求)和URL哈希(特定URL定向到同一服务器,适用于缓存)。这些算法各有优缺点,适应不同的服务环境和需求。
摘要由CSDN通过智能技术生成

普通轮询算法

每个请求会按时间顺序逐个分配到不同的后端服务器。轮询不需要额外的配置

 加权轮询算法

        设置服务器的权重,权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的,所以此策略比较适合服务器的硬件配置差别比较大的情况

IP哈希算法

        使用请求者的IP地址进行hash运算,根据计算结果来决定将请求发送到哪一台服务器,可以确保来自同一IP地址的请求始终落在同一台服务器上。

        当对后端的多台动态应用服务器做负载均衡时,IP哈希算法能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。这样,当来自某一个IP的用户在后端Web服务器A上登录后,在访问该站点的其他URL,能保证其访问的始终是后端web服务器A。(但是实际上,对于这种session共享问题,还是通过redis处理比较好)

        需要额外多说一点的是使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些后端服务器接收到的请求多,有些后端服务器接收的请求少,而且设置后端服务器权重等方法将不起作用 

最少连接算法

        把请求转发给连接数较少的后端服务器。

        轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,最少连接算法就可以达到更好的负载均衡效果。

URL哈希算法

        按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。

        发送相同的请求时,希望只有一个服务器处理该请求,使用 uri_hash。因为 URL 相同,则哈希值(hash)相同,那么哈希值对应的服务器也相同。适用于一些大文件缓存在一个服务器中的情况,减少大文件在多个服务器中传输消耗,通过提高缓存命中提高对请求的效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学徒630

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值