gpt4 book ai didi

java - Kafka 消费者是否默认批量大小?

转载 作者:行者123 更新时间:2023-12-04 13:17:07 27 4
gpt4 key购买 nike

Kafka 是否提供用于从主题读取消息的默认批量大小?我有以下代码正在读取来自主题的消息。

  while (true) {
final ConsumerRecords<String, User> consumerRecords =
consumer.poll(500));
if (consumerRecords.count() == 0) {
noRecordsCount++;
if (noRecordsCount > giveUp) break;
else continue;
}
consumerRecords.forEach(record -> {
User user = record.value();
userArray.add(user);
});

insertInBatch(user)
consumer.commitAsync();
}
consumer.close();

在 insertInBatch 方法中,我将数据保存到数据库中。这个方法每 500 条记录就会被调用一次,即使我没有在创建消费者时指定任何批量大小。
我不认为我的创作方式有什么特别之处。将 Avro 用于消息,但我认为这并不重要(?)
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test");
props.put("auto.commit.enable", "false");
props.put("auto.offset.reset", "earliest");

props.put("key.serializer",StringSerializer.class.getName());
props.put("value.serializer",KafkaAvroDeserializer.class.getName());
props.put("schema.registry","http://localhost:8081");

最佳答案

是的,有一个默认值 max.poll.records
https://kafka.apache.org/documentation/#consumerconfigs

但是,如果您要插入数据库,那么使用 Kafka Connect 会比编写一个显然没有错误处理的消费者(还没有?)

关于java - Kafka 消费者是否默认批量大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com