【问题标题】:Can kafka server force consumer properties?kafka服务器可以强制消费者属性吗?
【发布时间】:2019-11-18 13:38:14
【问题描述】:

我对 Kafka 世界还比较陌生。我可以在 Java 中设置一个 kafka 消费者,并且可以看到消费者 API 允许我设置消费者属性。

properties.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG,2000);
new KafkaConsumer<>(properties)

这对我来说很好用。我还在 kafka 服务器上看到了一个名为 consumer.properties 的文件。我认为如果我将 max.poll.interval.ms 配置为该文件中的某个值,那么我不需要在消费者代码中配置它。但这不起作用。是不是我无法从服务器端决定消费者属性?我认为如果kafka服务器决定心跳时间或超时时间而不是消费者会更好。我必须在 kafka 服务器上进行任何其他设置以强制消费者属性吗?我浏览了 Kafka 文档,但找不到与此相关的任何内容。看起来必须编写 consumer.properties 文件,然后必须将其传递给消费者 API。请说清楚。谢谢。

【问题讨论】:

  • 一种替代方法是将 kafka 消费者包装到具有消费者属性的 java 库中,并且您的所有应用程序都可以导入和使用此库

标签: apache-kafka kafka-consumer-api


【解决方案1】:

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多