我正在使用卡夫卡。
我有一个包含 10k json 的列表。
目前我发送的 Json 如下:
for(int i=0 ;i< jsonList.size(); i++){
ProducerRecord<K,V> record = new ProducerRecord(topic, jsonList[i]);
producer.send(record);
}
发送每条消息。
我想将列表发送到 kafka 并让 kafka 在 json 后发送 json (不是一条包含所有 json 字符串的消息),如下所示:
ProducerRecord<K,V> record = new ProducerRecord(topic, jsonList);
producer.send(record);
我该怎么做?
Thanks
正式通过使用KafkaProducer
and producerRecord
你不能这样做,但你可以通过配置一些属性来做到这一点ProducerConfig
批量大小从文档生成器将记录批量发送到发送到同一分区的请求并立即发送它们
每当多个记录发送到同一分区时,生产者将尝试将记录一起批处理为更少的请求。这有助于提高客户端和服务器的性能。此配置控制默认批量大小(以字节为单位)。
不会尝试批量记录大于此大小的记录。
徘徊者该设置用于生产者的延迟时间,让生产者保持一段时间,以便同时所有请求都将被批量发送,但是批量大小是上限,如果生产者获得足够的批量大小,它将忽略此属性并向 kafka 发送批量消息
生产者将请求传输之间到达的所有记录分组到单个批处理请求中。此设置通过添加少量人为延迟来实现此目的 - 也就是说,生产者不会立即发送记录,而是等待给定的延迟以允许发送其他记录,以便可以将发送一起批处理。此设置给出了批处理延迟的上限:一旦我们得到了batch.size的值无论此设置如何,都会立即发送分区的记录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)