首页 > 大数据 > 数据分析 > 图解 Kafka 源码之 NetworkClient 网络通信组件架构设计 大家好,我是 华仔, 又跟大家见面了。 上篇主要带大家深度剖析了「发送网络 I/O 的 Sender 线程的架构设计」,消息先被暂存然后调用网络I/O组件进行发送,今天主要聊聊「真正进行网络 I/O 的 NetworkClient 的架构设计」深度剖析下消息是如何被发送出去的。 原文完整版在星球里面,如果感兴趣可以扫文末二维码加入。 认真读完这篇文章,我相信你会对 Kafka NetworkClient 的源码有更加深刻的理解。 这篇文章干货很多,希望你可以耐心读完。 01 总的概述 继续通过「场景驱动」的方式,来看看消息是如何在客户端被累加和待发送的。 在上篇中,我们知道了消息被 Sender 子线程先暂存到 KafkaChannel 的 Send 字段中,然后调用 NetworkClient#client.poll() 进行真正发送出去,如下图所示「6-11步」。 NetworkClient 为「生产者」、「消费者」、「服务端」等上层业务提供了网络I/O的能力。在...