当前位置: 首页 > news >正文

高性能负载均衡

高性能负载均衡:分类及架构

      单服务器无论如何优化,无论采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。

      高性能集群的本质很简单,通过增加更多的服务器来提升系统整体的计算能力。由于计算本身存在一个特点:同样的输入数据和逻辑,无论在哪台服务器上执行,都应该得到相同的输出。因此高性能集群设计的复杂度主要体现在任务分配这部分,需要设计合理的任务分配策略,将计算任务分配到多台服务器上执行。

      高性能集群的复杂性主要体现在需要增加一个任务分配器,以及为任务选择一个合适的任务分配算法。

      对于任务分配器,现在更流行的通用叫法是“负载均衡器”。但这个名称有一定的误导性,会让人潜意识里认为任务分配的目的是要保持各个计算单元的负载达到均衡状态。而实际上任务分配并不只是考虑计算单元的负载均衡,不同的任务分配算法目标是不一样的,有的基于负载考虑,有的基于性能(吞吐量、响应时间)考虑,有的基于业务考虑。考虑到“负载均衡”已经成为了事实上的标准术语,

      但请时刻记住,负载均衡不只是为了计算单元的负载达到均衡状态。

负载均衡分类

      常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡。

   DNS 负载均衡

        DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。

        DNS 负载均衡的简单示意图:

image

      DNS 负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。仔细分析一下优缺点,其优点有:

          简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。

          就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

      缺点有:

            更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败,达不到负载均衡的目的,并且也影响用户正常使用业务。

            扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。

            分配策略比较简单:DNS 负载均衡支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载);也无法感知后端服务器的状态。

    针对 DNS 负载均衡的一些缺点,对于时延和故障敏感的业务,有一些公司自己实现了 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。这样的方案和通用的 DNS 优缺点正好相反。

硬件负载均衡

      硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10。

        硬件负载均衡的优点是:

          功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。

          性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。

          稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。

          支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

       硬件负载均衡的缺点是:

          价格昂贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。

          扩展能力差:硬件设备,可以根据业务进行配置,但无法进行扩展和定制。


软件负载均衡

      软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

      软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。

      Ngxin 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。

除了使用开源的系统进行负载均衡,如果业务比较特殊,也可能基于开源系统进行定制(例如,Nginx 插件),甚至进行自研。

      Nginx 的负载均衡架构示意图:

image

        软件负载均衡的优点:

          简单:无论是部署还是维护都比较简单。

          便宜:只要买个 Linux 服务器,装上软件即可。

          灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

        与硬件负载均衡相比性能一般:一个 Nginx 大约能支撑 5 万并发。功能没有硬件负载均衡那么强大。一般不具备防火墙和防 DDoS 攻击等安全功能。

负载均衡典型架构

        3 种常见的负载均衡机制:DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。

        具体来说,组合的基本原则为: DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

image

        整个系统的负载均衡分为三层。

                地理级别负载均衡:www.xxx.com 部署在北京、广州、上海三个机房,当用户访问时, DNS 会根据用户的地理位置来决定返回哪个机房的 IP,图中返回了广州机房的 IP 地址,这样用户就访问到广州机房了

                集群级别负载均衡:广州机房的负载均衡用的是 F5 设备,F5 收到用户请求后,进行集群级别的负载均衡,将用户请求发给 3 个本地集群中的一个,我们假设 F5 将用户请求发给了“广州集群 2”。

                机器级别的负载均衡:广州集群 2 的负载均衡用的是 Nginx,Nginx 收到用户请求后,将用户请求发送给集群里面的某台服务器,服务器处理用户的业务请求并返回业务响应。

上图只是一个示例,一般在大型业务场景下才会这样用,如果业务量没这么大,则没有必要严格照搬这套架构。



上一章: 单服务器高性能模式

下一章: CAP理论

归类: 从0开始学架构

http://www.jsqmd.com/news/588280/

相关文章:

  • KART-RERANK在互联网广告场景的应用:广告创意与搜索词的相关性优化
  • 游标分页与服务器端游标的对比分析
  • 工具篇:诊断延迟的利器——SHOW SLAVE STATUS详解
  • 【skill-creator 】技术解析:Claude Code 元技能系统的设计原理与核心特点
  • 如何让老旧苹果电脑重获新生:OpenCore Legacy Patcher完全指南
  • 新手福音:在快马平台用代码复刻ps基础功能,轻松入门图像处理
  • 我的编程之旅——第一篇博客
  • [JAVA探索之路]带你手写多线程实现生产者-消费者模型
  • C++的std--ranges算法并行执行数据竞争检测
  • 第06章langchain之向量化和向量数据库
  • 实战指南:基于快马AI构建企业级域名监控与故障切换管理平台
  • 找到一种方法:用LM Studio 和 llmster 可以把qwen3.5改成nothinking版本装载来提高响应速度
  • 别再找了,这应该是目前最好用的翻译插件了。
  • TongWeb8.0支持JBoss Weld‌
  • 基于单片机的水产养殖饲料自动投喂系统
  • NCMDump解密指南:三步解锁网易云音乐加密文件的终极方案
  • 嘿,今天来跟大家聊聊基于Copula多元互相关的随机场边坡模型。这模型可有意思啦,它在边坡稳定性研究这块有着独特的魅力
  • 第6章 Mosquitto用户认证与访问控制
  • 【自动驾驶技术解析】端到端架构与感知规控演进全景(2025–2026)
  • Node.js 类
  • Java 小白必看:MySQL 主从延迟是什么?怎么排查?怎么彻底解决?
  • 全球GPU算力荒背景下,主流算力平台价格与服务对比分析
  • Ace Data Cloud:使用 SERP API 获取 Google 搜索结果
  • Go语言的context.WithCancel中的协调资源
  • 面对 AI 热潮,企业最值得优先落地的5个业务场景
  • 国密GB35114+国标GB28181平台EasyGBS双重加持筑牢雪亮工程坚实安全底座
  • 我做了一个能连微信、家电、汽车和 AI 的超级管家:Wanny
  • 25、CSP、SRI、HttpOnly、SameSite、Secure 一次讲透
  • 基于Matlab的Dijkstra算法与蚁群优化算法路径规划
  • 快马AI助力:十分钟用openclaw搭建你的第一个网页爬虫原型