Kafka:动态查询配置

mpe*_*tis 8 apache-kafka

有没有办法在server.properties不直接访问该文件本身的情况下访问配置值?

我以为:

kafka-configs.sh --describe --entity-type topics --zookeeper localhost:2181
Run Code Online (Sandbox Code Playgroud)

可能会给我我想要的东西,但我没有看到设定的值server.properties.只是以下(我将'ddos'设置为我自己的主题kafka-topics.sh):

Configs for topics:ddos are
Configs for topics:__consumer_offsets are segment.bytes=104857600,cleanup.policy=compact
Run Code Online (Sandbox Code Playgroud)

我在想我也会看到全局配置的选项,比如我的默认配置:

log.retention.hours=168
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Mic*_*son 1

从 Kafka 0.11 开始,您可以使用 AdminClient describeConfigs()API 来检索代理的配置。

例如,检索代理 0 的配置的骨架代码:

Properties adminProps = new Properties();
adminProps.load(new FileInputStream("admin.properties"));
AdminClient admin = KafkaAdminClient.create(adminProps);

Collection<ConfigResource> resources = new ArrayList<>();
ConfigResource cr = new ConfigResource(Type.BROKER, "0");
resources.add(cr);
DescribeConfigsResult dcr = admin.describeConfigs(resources);
System.out.println(dcr.all().get());
Run Code Online (Sandbox Code Playgroud)