← 返回笔记

learning note

什么是负载均衡

用简洁方式解释负载均衡的基本概念、作用和它在分布式系统中的位置。

一句话总结:

负载均衡(Load Balancing)是分布式系统的核心技术,它将大量并发请求 / 流量按照一定规则均匀分摊到多台后端服务器上执行,从而解决单台服务器性能瓶颈、单点故障问题,提升系统整体的吞吐量、可用性和可靠性。

简单类比:就像餐厅的领班,会把新来的客人分配到不同的服务员那里,避免某一个服务员忙不过来,而其他人闲着。

解决的问题:

  • 性能瓶颈:单台服务器的 CPU、内存、IO 能力有限,无法支撑高并发请求

  • 单点故障:单台服务器宕机,整个服务就不可用

  • 资源利用率低:多台服务器负载不均,有的忙死有的闲死

  • 横向扩展:通过增加服务器数量,线性提升系统的处理能力

画图表示:

也就是说线上可能会有很多台服务器都部署了这个服务。同一个用户的不同请求可能会被映射到不同服务器上进行处理。

负载均衡下单体Single-Flight的缺点

单体 Single-flight(进程内单飞模式)的所有能力都建立在 “所有请求都进入同一个 JVM / 进程” 这个前提上。一旦引入负载均衡,请求被分发到多台服务器,它的核心设计就会彻底失效,并产生一系列严重的生产问题。

核心致命缺点:全局去重完全失效

这是最根本的问题,也是所有其他问题的根源。

  • 本质原因:单体 Single-flight 的请求状态(flights map)只存在于单个进程的本地内存中,不同服务器之间完全隔离、无法共享。

  • 实际效果:同一个 key 的请求会被负载均衡器分发到 N 台不同的服务器,每台服务器都会独立执行一次完整的业务逻辑

那这样可能会对AI资源造成极大的浪费,因此我们需要搭建分布式Single-Flight。