在哪里定义topic.metadata.refresh.interval.ms?

iswrvxsc  于 2021-06-08  发布在  Kafka
关注(0)|答案(3)|浏览(713)

我正在测试Kafka一点,希望能把它在我的生产堆栈很快。
我在用这些文件 kafka-console-producer.sh 以及 kafka-console-consumer.sh 测试Kafka的功能。
我创建了一个包含两个分区的主题,但是我看到我的生产者发送的所有消息都将发送到一个分区。
我在网上搜索了这个,发现有一个叫做 topic.metadata.refresh.interval.ms 它告诉生产者更改它当前正在写入的分区,默认值是10分钟。
我正试图改变这个设置,但我不明白在哪里?

t2a7ltrp

t2a7ltrp1#

我知道你指的是java客户机,jaya的回答就足够了。如果您正在使用构建在 librdkafka 那么配置可能会略有不同:
https://github.com/edenhill/librdkafka/blob/master/configuration.md metadata.max.age.ms :
元数据缓存最长期限。默认为metadata.refresh.interval.ms*3。类型:整数 topic.metadata.refresh.interval.ms :
主题元数据刷新间隔(毫秒)。元数据在出错并连接时自动刷新。使用-1禁用间隔刷新。类型:整数

csga3l58

csga3l582#

Kafka属性可以在以下三个文件中找到 server.properties, producer.properties, consumer.properties 这些文件将在文件夹中可用 kafka-folder/config/ . 默认情况下,这些文件中有一些属性可用。你可以添加任何你想要的属性。属性列表在此链接中给出https://kafka.apache.org/08/configuration.html. 此链接包含服务器、生产者和使用者的所有属性的详细说明。
topic.metadata.refresh.interval.ms 是生产者配置,您需要在 producer.properties 文件
注意上面的链接是kafka-0.8版本的属性配置。

kdfy810k

kdfy810k3#

也可以在producer类中设置它:

Properties props = new Properties();
props.put("topic.metadata.refresh.interval.ms", "10");
ProducerConfig config = new ProducerConfig(props);

相关问题