负载均衡导学

165 阅读2分钟

是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战

什么是负载均衡

负载平衡(Load Balancing)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大吞吐率、最小化响应时间、同时避免过载的目的。

特点:使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。(负载平衡服务通常是由专用软件和硬件来完成。)

主要作用:将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。

负载均衡目标

高性能:高并发、快速响应

高可靠:集群高可靠、故障切换、故障恢复和扩容

高可用:可用性(Availability) = 平均无故障时间/(平均无故障时间+平均修复时间)

             可用性衡量术语:99%,99.9%,99.99%,99.999%

可伸缩:节点下线和扩容

可防护

负载均衡实现方式划分

  • 硬件实现

       F5: BIG-IP

       A10

       Citrx:Netscaler

  • 软件实现

      LVS

      NGINX

      HAPROXY

负载均衡协议层划分

  • 链路层

       LVS

  • 网络层

       LVS

       路由

  • 传输层

       LVS

       HAPROXY

  • 应用层

      HAPROXY

      NGINX

负载均衡类型的技术选择

  • 功能需求 :协议支持、调度算法、会话保持、SSL加速、可用性等
  • 性能需求:吞吐量、新建连接数、并发连接数等
  • 成本 :软硬件成本、人力成本、时间成本
  • 真实和未来需求

总结

负载均衡(Load Balancing)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 

 (1)【客户端层】到【反向代理层】的负载均衡,是通过“DNS轮询”实现的 

 (2)【反向代理层】到【站点层】的负载均衡,是通过“nginx”实现的 

 (3)【站点层】到【服务层】的负载均衡,是通过“服务连接池”实现的 

 (4)【数据层】的负载均衡,要考虑“数据的均衡”与“请求的均衡”两个点,常见的方式有“按照范围水平切分”与“hash水平切分”