评估业务部门新建 Topic 的申请并为其规划合适的分区数(Partition),是 Kafka 运维和架构设计中非常常见且核心的工作。分区数过多会导致集群资源浪费和可用性下降,过少则会导致吞吐量瓶颈。 我会按照以下五个步骤来进行系统性的评估和规划: --- 第一步:需求调研(向业务部门收集信息) 在直接给出分区数之前,必须先弄清楚业务的真实场景。我会向业务方确认以下关键指标: 1. 预估吞吐量(Throughput): 平均每秒发送多少条消息?消息平均大小是多少?(算出平均 MB/s) 峰值吞吐量是多少?(必须按峰值来规划,避免雪崩) 2. 消费端的处理能力(Consumer Capacity): 消费者是计算密集型、I/O 密集型还是简单的透传? 单个消费者线程每秒能处理多少 MB 或多少条消息?(这是决定分区的关键,通常消费端是瓶颈) 3. 消息顺序性要求(Ordering Guarantee): 是否要求全局严格有序?(如果是,分区数只能设为 1,且吞吐受限)。 是否要求局部有序(按 Key 保证顺序)?(比如同一个订单的状态变更)。如果是,后续扩容分区会打乱 Key 的...