Kafka 生产者 KafkaProducer 是 Kafka 与开发者交互的媒介之一,肩负接收用户自定义消息(这里的消息指代往 Kafka 发送的各类数据),并投递给目标 topic 分区的职责。在设计上为了提升消息吞吐量,考量降低与服务端交互的压力等,每次发送消息的请求并非是直接与 Kafka 集群进行交互,而是一个异步的过程。
当调用 KafkaProducer#send 方法发送消息时,实际上只是将消息缓存到了本地的消息收集器中,Kafka 定义了一个 RecordAccumulator 收集器用于收集用户提交的消息数据,同时又在后台维护了一个 Sender 线程,以异步的方式不断将收集器中缓存的消息定期定量地投递给 Kafka 集群。