topic 是新建的,确认无任何 producer 写入数据。 删除后查看 zookeeper 上 topic 的创建时间,发现 topic 是删除后自动创建。 查看 kafka 日志,发现 topic 是删除后自动创建的。
试下:
auto.create.topics.enable=false
我是怀疑你有一些程序在调用这个主题,导致被反复创建。最好确认下是否有客户端连接一直在。
测试环境的集群,如果吧 auto.create 改为 false 的话,估计天天能被创建 topic 的需求烦死
嗯,我是怀疑你有一些程序在调用这个主题,导致被反复创建。
测试环境控死有个好处,这样到生产上,主题名就是规范的。如果测试环境乱命名,到该发生产就头疼了。
当时也怀疑是有程序在往这个 topic 生产,然后就创建了完全不可能有人生产的新的 topic,结果还是删除后自动创建。
生产环境的创建是有工单的,不会出现明明不规范的问题
抱歉,这个真没遇到了。
您好,kafka集群配置了auto.create.topics.enable=false ,通过api produce 仍然会自动创建不存在的topic,请问什么原因呢
附上测试环境配置
############################# Server Basics ############################# broker.id=1 delete.topic.enable=true auto.create.topics.enable=true default.replication.factor=2 num.replica.fetchers=8 controlled.shutdown.enable=true auto.leader.rebalance.enable=true ############################# Socket Server Settings ############################# num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 ############################# Log Basics ############################# log.dirs=/opt/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 ############################# Log Flush Policy ############################# log.flush.interval.messages=10000 log.flush.interval.ms=1000 ############################# Log Retention Policy ############################# log.retention.bytes=536870912 log.retention.hours=18 log.segment.bytes=536870912 log.retention.check.interval.ms=300000 log.cleaner.enable=true offsets.retention.minutes=2880 ############################# Zookeeper ############################# zookeeper.connect=** zookeeper.connection.timeout.ms=6000 ############################# SASL ################################## listeners=** security.inter.broker.protocol=SASL_PLAINTEXT sasl.mechanism.inter.broker.protocol=GSSAPI sasl.enabled.mechanisms=GSSAPI sasl.kerberos.service.name=kafka
这个是因为你配置了权限,没办法删除zk上的sasl权限导致的。
那为何会是删除后又新建?
还有就是线上的集群配置把
auto.create.topics.enable
改为false
,就可以正常删除如果是因为权限导致的,应该不会删除后重建吧
问题补充:一共三套 kafka 集群,其中一套在滚动重启后解决了这个问题,另外两套还是无法删除
你的答案