企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
* 生产者将消息写入到Broker * Producer直接发送消息到Broker上的Leader Partition * Producer客户端自己根据分区策略(随机分配、自定义分区算法等)控制着消息被推送到哪些Partition * Producer 可以以**同步**和**异步**的方式发送消息 * Batch推送提高效率 Producer 负责向 Kafka 主题发布(生产)消息,一个 Topic 可以有多个 Producer实例,其相互之间没有协作关系。Producer 的 `send()` 方法用于发送消息,参数ProducerRecord 封装了消息的内容:Topic、Partition、key、value 等信息。如果发送成功,返回的 RecordMetadata 中记录了消息的偏移量(Offset),如果发送失败就会重试或者抛出异常。如下图所示。 :-: ![](https://img.kancloud.cn/60/0d/600d85336800a86c5a6ec61ab3e6ceeb_700x529.png) Producer 消息发送流程 Producer 以 **Batch 的方式**推送数据可以极大的提高处理效率,Kafka Producer 可以将消息在内存中累计到一定数量后作为一个 Batch 发送请求,Batch 的数量大小可以人为进行干预,通过增加 Batch 的大小,可以减少网络请求和磁盘 IO 的次数,当然具体参数设置需要在效率和时效性方面做一个权衡。