参数 | 默认值 | 描述 |
producer.type | sync | 指定消息发送是同步还是异步。 异步asyc成批发送用kafka.producer.AyncProducer, 同步sync用kafka.producer.SyncProducer |
metadata.broker.list | boker list | 使用这个参数传入boker和分区的静态信息,如host1:port1,host2:port2, 这个可以是全部boker的一部分 |
compression.codec | NoCompressionCodec | 消息压缩,默认不压缩 |
compressed.topics | null | 在设置了压缩的情况下,可以指定特定的topic压缩,未指定则全部压缩 |
message.send.max.retries | 3 | 消息发送最大尝试次数 |
retry.backoff.ms | 300 | 每次尝试增加的额外的间隔时间 |
topic.metadata.refresh.interval.ms | 600000 | 定期的获取元数据的时间。当分区丢失,leader不可用时producer也会主动获取元数据,如果为0,则每次发送完消息就获取元数据, 不推荐。如果为负值,则只有在失败的情况下获取元数据。 |
queue.buffering.max.ms | 5000 | 在producer queue的缓存的数据最大时间,仅仅用于异步。 |
queue.buffering.max.message | 10000 | producer 缓存的消息的最大数量,仅仅用于异步。 |
queue.enqueue.timeout.ms | -1 | 0当queue满时丢掉,负值是queue满时block,正值是queue满时block相应的时间,仅仅用于异步。 |
batch.num.messages | 200 | 一批消息的数量,仅仅用于异步。 |
request.required.acks | 0 | acks指定必须要有多少个partition副本收到消息,生产者才会认为消息的写入是成功的。
acks=0,生产者不需要等待服务器的响应,以网络能支持的最大速度发送消息,吞吐量高,但是如果broker没有收到消息,生产者是不知道的 acks=1,leader partition收到消息,生产者就会收到一个来自服务器的成功响应 acks=all(-1),所有的partition都收到消息,生产者才会收到一个服务器的成功响应,仅仅用于异步。 |
request.timeout.ms | 10000 | 确认超时时间 |
buffer.memory |
| 设置生产者内缓存区域的大小,生产者用它缓冲要发送到服务器的消息。 |
batch.size |
| 发送到同一个partition的消息会被先存储在batch中,该参数指定一个batch可以使用的内存大小,单位是byte。不一定需要等到batch被填满才能发送。 |
max.in.flight.requests.per.connection |
| 生产者在收到服务器响应之前可以发送的消息个数。 |
linger.ms |
| 生产者在发送消息前等待linger.ms,从而等待更多的消息加入到batch中。如果batch被填满或者linger.ms达到上限,就把batch中的消息发送出去。 |
Kafka中生产者的配置详情
最新推荐文章于 2024-07-22 05:15:00 发布