将Kafka与Java库一起使用,我想禁用主题的自动创建(如果尚不存在)。
某些网站说我应该将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进行管理。
这可能吗?
答案 0 :(得分:1)
它是代理级别的配置。您不能让用户从Java客户端程序中进行管理。
由于auto.create.topics.enable
属性是只读代理配置,因此需要重新启动kafka服务。因此,不可能从客户端进行处理。
您可以在此处使用动态更新模式阅读配置:https://kafka.apache.org/documentation/#brokerconfigs
答案 1 :(得分:0)
Spring具有spring.cloud.stream.kafka.binder.autoCreateTopics
属性,该属性默认为true
,并且独立于Broker属性auto.create.topics.enable
起作用。我猜这只有在您的Broker配置允许客户端创建主题时才有效。阻止该权限可能比依赖客户端的行为更安全。
https://cloud.spring.io/spring-cloud-stream-binder-kafka/spring-cloud-stream-binder-kafka.html