diff --git a/docs/user_guide/faq.md b/docs/user_guide/faq.md index 42ba747a..54ac5543 100644 --- a/docs/user_guide/faq.md +++ b/docs/user_guide/faq.md @@ -26,6 +26,7 @@ - 14、集群的删除,是否会真正的删除集群? - 15、APP(应用)如何被使用起来? - 16、为什么下线应用提示operation forbidden? +- 17、删除Topic成功,为什么过一会儿之后又出现了? --- @@ -170,3 +171,27 @@ app在Logi-KM中可以近似理解为租户,或者是kafka里面的一个账 使用的是2.4.0之前的旧版本,旧版本存在缓存更新的BUG,建议升级至最新的版本,或者简单粗暴的就是重启一下KM。 + +### 17、删除Topic成功,为什么过一会儿之后又出现了? + +**原因说明:** + +Logi-KM会去请求Topic的endoffset信息,要获取这个信息就需要发送metadata请求,发送metadata请求的时候,如果集群允许自动创建Topic,那么当Topic不存在时,就会自动将该Topic创建出来。 + + +**问题解决:** + +因为在Logi-KM上,禁止Kafka客户端内部元信息获取这个动作非常的难做到,因此短时间内这个问题不好从Logi-KM上解决。 + +当然,对于不存在的Topic,Logi-KM是不会进行元信息请求的,因此也不用担心会莫名其妙的创建一个Topic出来。 + +但是,另外一点,对于开启允许Topic自动创建的集群,建议是关闭该功能,开启是非常危险的,如果关闭之后,Logi-KM也不会有这个问题。 + +最后这里举个开启这个配置后,非常危险的代码例子吧: + +```java +for (int i= 0; i < 100000; ++i) { + // 如果是客户端类似这样写的,那么一启动,那么将创建10万个Topic出来,集群元信息瞬间爆炸,controller可能就不可服务了。 + producer.send(new ProducerRecord("logi_km" + i,"hello logi_km")); +} +```