目录
一. 前言
Kafka生产者是一个应用程序,它负责向 Kafka 主题发送消息。这些消息可以用于多种目的,如记录用户活动、收集物联网设备数据、保存日志消息或缓存即将写入数据库的数据。
二. 生产消息
生产者是线程安全的,在线程之间共享单个生产者实例,通常单例比多个实例要快。
一个简单的例子,使用 Producer 发送一个有序的 key/value(键值对),放到 Java 的 main() 方法里就能直接运行(支持的版本 >= 0.9):
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerialize
本文详细介绍了Kafka的生产者,包括生产消息的流程、幂等性和事务支持。通过设置enable.idempotence为true,可以实现幂等生产者,避免重试导致的消息重复。同时,事务性生产者允许原子性地发送到多个分区,需设置transactional.id。send()方法是异步的,可配合回调函数实现无阻塞发送。生产者内部使用主线程和Sender线程协同工作,提高消息发送效率。
订阅专栏 解锁全文
2524

被折叠的 条评论
为什么被折叠?



