2

将 Kafka 与 Java lib 一起使用,我想禁用主题的自动创建(如果它尚不存在)。

有些网站说我应该把 auto.create.topics.enable 设置为 false,但这在 Java 中不被识别。

15:11:56.962 [main] WARN  o.a.k.c.consumer.ConsumerConfig -  The configuration 'auto.create.topics.enable' was supplied but isn't a known config.

目前我把它作为环境变量放在我的 docker-compose 中:

KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'

这可行,但我想由用户从 Java 管理它。

这可能吗?

4

2 回答 2

1

这是经纪人级别的配置。您不能让用户从 java 客户端程序管理它。

由于auto.create.topics.enable属性是只读代理配置,需要重启kafka服务。因此,无法从客户端处理它。

您可以在此处使用动态更新模式阅读配置:https ://kafka.apache.org/documentation/#brokerconfigs

于 2019-03-01T14:34:18.797 回答
0

Spring 具有spring.cloud.stream.kafka.binder.autoCreateTopics默认为trueBroker 属性并独立工作的属性auto.create.topics.enable。我猜它只有在您的代理配置允许客户端创建主题时才有效。阻止该权限可能比依赖客户行为更安全。

https://cloud.spring.io/spring-cloud-stream-binder-kafka/spring-cloud-stream-binder-kafka.html

于 2020-07-01T22:07:17.110 回答