在多租户的 Kafka 集群中,某个业务线(租户)因为突发流量或代码 Bug 导致带宽被打满,从而影响其他业务线,这是一个非常典型的“吵闹的邻居”(Noisy Neighbor)问题。 为了解决这个问题,Kafka 提供了原生的 Quota(配额)机制。通过 Quota,你可以对生产端(Produce)和消费端(Fetch)的网络带宽进行精准限流。 以下是在多租户环境下配置和管理 Kafka 带宽 Quota 的完整方案: --- 一、 核心概念:Kafka 是如何限流的? 1. 限流维度:Kafka 的带宽 Quota 是针对单个 Broker 计算的。例如,你设置了 10MB/s 的生产配额,如果集群有 3 个 Broker,那么该租户在整个集群的最大理论生产速率是 30MB/s。 2. 限流行为(背压机制):当客户端超出配额时,Kafka 不会立刻报错或丢弃消息。相反,Broker 会计算出一个需要延迟的时间(Throttle Time),并在处理完请求后,暂停响应客户端这段时间。这会让客户端的请求阻塞,从而天然地形成背压(Backpressure),迫使客户端降低发送/拉...