第一章:宏观架构——双线程异步模型
理解 Producer 的关键在于理解它的异步本质。send() 方法的调用仅仅是将消息写入了客户端的内存缓冲区,而非立即通过网络发送。
Producer 内部主要由两个核心线程协同工作:
- Main Thread(主线程):业务线程。负责消息的拦截(Interceptors)、序列化(Serializer)、分区(Partitioner),并将消息追加到内存缓冲池(RecordAccumulator)。
- Sender Thread(I/O 线程):后台线程。负责不断从缓冲池中提取 Batch,将其按照 Broker 节点进行聚合,并通过 NetworkClient 发送网络请求。
更新ing