我对卡夫卡世界还比较陌生。我可以用 Java 设置一个 kafka 消费者,并且可以看到消费者 API 允许我设置消费者属性。
properties.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG,2000);
new KafkaConsumer<>(properties)
这对我来说效果很好。我还在 kafka 服务器上看到一个名为consumer.properties 的文件。我认为如果我将 max.poll.interval.ms 配置为该文件中的某个值,那么我不需要在消费者代码中配置它。但这是行不通的。我是否无法从服务器端决定消费者属性?我觉得如果kafka服务器代替consumer来决定心跳时间或者超时时间会更好。我必须在 kafka 服务器上执行其他设置来强制消费者属性吗?我浏览了 Kafka 文档,但找不到与此相关的任何内容。看起来必须编写consumer.properties 文件,然后将其传递给consumer API。请澄清。谢谢。
最佳答案
Kafka 消费者没有全局配置。 consumer.properties
文件通常用于 Kafka 控制台消费者。例如,
kafka-console-consumer --bootstrap-server localhost:9092 --topic myTopic --from-beginning --consumer.config consumer.properties
或者,如果您想在 Java Consumer 的上下文中使用该文件,您可以照常读取 consumer.properties
并设置相应的属性。例如,
Properties consumerProps = new Properties();
try {
consumerProps.load(App.class.getClassLoader().getResourceAsStream("config.properties"));
// Add any other properties you may wish..
KafkaConsumer consumer = new KafkaConsumer<>(consumerProps)
}
catch (IOException ex) {
ex.printStackTrace();
}
关于apache-kafka - kafka服务器可以强制消费属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58915876/