Spring Cloud Stream Kafka禁用自动创建Topic后仍自动创建问题咨询
解决Spring Cloud Stream Kafka Binder自动创建主题问题
问题原因
你在binder级别设置了auto-create-topics: false,但输入主题my-topic仍被自动创建,核心原因是绑定级别的自动创建配置优先级高于全局binder配置,默认情况下绑定级别的auto-create-topics处于开启状态,会覆盖全局设置。
解决方案
需要在绑定级别显式关闭消费者和生产者的自动创建主题配置,修改后的完整配置如下:
spring: cloud: stream: kafka: binder: brokers: localhost:9093 auto-create-topics: false # 为输入、输出绑定单独配置自动创建开关 bindings: input: consumer: auto-create-topics: false output: producer: auto-create-topics: false function: bindings: transform-in-0: input transform-out-0: output
关键说明
spring.cloud.stream.kafka.bindings.input.consumer.auto-create-topics: false:明确禁止输入绑定对应的主题自动创建spring.cloud.stream.kafka.bindings.output.producer.auto-create-topics: false:同时禁止输出绑定对应的主题自动创建(如果不需要自动创建输出主题的话)- 配置完成后,应用启动时不会再自动创建
my-topic,你可以通过其他工具或应用手动创建该主题并配置自定义的保留策略。
内容的提问来源于stack exchange,提问作者Marc Nickert
相关产品推荐
相关产品推荐

