专栏首页性能与架构负载均衡的分类及算法

负载均衡的分类及算法

一、负载均衡分类

1. DNS 负载均衡

思路是 DNS 解析同一个域名时可以返回不同的IP地址。

用来实现地理级别的均衡,例如,北方用户访问北京机房、南方用户访问深圳机房。

优点:

  • 简单,成本低,直接交给DNS服务器处理即可,无需自己维护。
  • 就近访问,提升访问速度。

缺点:

  • DNS缓存时间较长,更新不及时。
  • DNS控制权在域名商那里,无法根据业务特点定制扩展。

2. 硬件负载均衡

通过单独的硬件设备实现负载均衡,典型设备例如 F5、A10。

优点:

  • 功能强大,支持各级负载均衡,支持各种负载均衡算法,支持全局负载均衡。
  • 性能强大,可以支持100万以上的并发。
  • 稳定性高。
  • 支持安全防护,除了负载均衡的功能,还有防火墙、防DDoS攻击等安全功能。

缺点:

  • 昂贵,价格几万甚至数十万。
  • 扩展能力差。

3. 软件负载均衡

通过软件实现,例如我们熟悉的 Nginx(7层负载均衡) 和 LVS(4层负载均衡)。

和硬件负载均衡相比,性能差了很多,Nginx 能支持5万/秒,而F5是百万级,但价格也便宜了很多。

优点:

  • 简单
  • 便宜
  • 灵活

缺点:

  • 性能一般
  • 没有防火墙等安全功能

负载均衡的典型架构

DNS、硬件、软件这3中方式可以组合使用,基本原则

  • DNS方式用于实现地理级别的负载均衡。
  • 硬件方式用于实现集群级别的负载均衡。
  • 软件方式用于实现机器级别的负载均衡。

二、负载均衡算法

1. 轮询

负载均衡系统接收到请求后,按照顺序轮流分配给服务器。

这种方式非常简单,只管按顺序分配,至于服务器当前负载情况、硬件能力等都不关心,只要服务器还能工作,就可以分配,除非服务器挂了。

2. 加权轮询

是轮询方式的一种改进,轮询方式是无差别分配,但实际服务器的处理能力是有差异的,所以需要区别对待。

为服务器设置权值,权值高的就多分配点。

3. 负载最低优先

将任务分配给当前负载最低的服务器。

例如 LVS 可以根据“连接数”判断服务器状态,NGINX 可以根据“HTTP请求数”来判断。

这种方式比轮询高级很多,可以感知服务器的状态了,但其复杂度也大大提高了,要收集统计服务器的负载信息。

4. 性能最优

优先将任务分配给处理速度最快的服务器,来达到最快响应客户端的目的。

此方式也是感知服务器的状态,标准是响应时间

需要收集分析服务器的响应时间,这个工作本身消耗也不小,所以采用采样的方式,不统计所有任务的响应时间,统计一个周期(例如 10秒/1分钟/5分钟)内的状态。

优缺点与 负载最低优先 相同。

5. Hash

对请求中的关键信息(如IP)进行hash计算,hash值相同的请求分配到同一台服务器,例如业务中希望同一用户的请求都由同一台服务器来处理。

小结

内容整理自《从0开始学架构》

点击?阅读原文查看文章列表

本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过负载均衡实现应用服务器可伸缩

    应用服务器部署核心业务逻辑,主要处理用户请求的服务器 应用通常设计成无状态结构,即应用本身不记录用户请求的上下文信息,这样设计的好处是任何用户的任何一次请求都...

    dys
  • 查看Linux系统的平均负载

    有时系统响应速度很慢,很可能是CPU的负载过高了,这时就要是否有大量的进程在排队等待 特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度,所以我们通常需...

    dys
  • 高性能负载均衡软件HAProxy

    image.png HAProxy是一个负载均衡软件,开源、高性能,可应用于TCP(第四层)和HTTP(第七层) 借助HAProxy可以快速、可靠地提供基于TC...

    dys
  • 浅谈大型网站之负载均衡架构

    概念 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务...

    Java技术栈
  • 快速理解高性能HTTP服务端的负载均衡技术原理

    在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。HTTP负载均衡的本质上是将W...

    JackJiang
  • 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐

    十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户网络有哪些不...

    Java后端技术
  • 高并发系统设计负载均衡架构

    一个系统发展初期,往往都是单机系统。应用和数据库在一台服务器上,随着业务的发展,访问量的增大,一台服务器性能就会出现天花板,往往已经难以支撑业务量了。这个时候就...

    用户1564362
  • 程序员修神之路--高并发系统设计负载均衡架构

    一个系统发展初期,往往都是单机系统。应用和数据库在一台服务器上,随着业务的发展,访问量的增大,一台服务器性能就会出现天花板,往往已经难以支撑业务量了。这个时候就...

    用户1564362
  • 高并发系统设计负载均衡架构

    一个系统发展初期,往往都是单机系统。应用和数据库在一台服务器上,随着业务的发展,访问量的增大,一台服务器性能就会出现天花板,往往已经难以支撑业务量了。这个时候就...

    我被狗咬了
  • 四层、七层负载均衡的区别

    一,什么是负载均衡(Load balancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性...

    架构师小秘圈

扫码关注云+社区

领取腾讯云代金券