可以创建 KafkaJS 中已经存在的主题吗?

Is it OK to create topics that already exist in KafkaJS?

情况

我正在使用 KafkaJS, and 动态创建一系列主题我应该使用 createTopics 管理功能。

问题是,如果在一个已经存在的主题上调用 createTopics,它不仅会 return false(如文档所述),还会发出错误说明“同名主题已经存在”。

{"level":"ERROR","timestamp":"2020-08-24T18:19:48.465Z","logger":"kafkajs","message":"[Connection] Response CreateTopics(key: 19, version: 2)","broker":"localhost:9092","clientId":"tv-kitchen","error":"Topic with this name already exists","correlationId":2,"size":86}

问题

我意识到这个错误 straight out of the Kafka protocol 但我很担心,因为错误就是错误。

我 运行 createTopics 是否安全,即使它可能会冒创建一个已经存在的主题的风险,或者我是否还需要进行某种类型的错误处理?

如果它是安全的,是否可以消除该错误,因为它最终是噪音?

but it also emits an error stating "Topic with this name already exists".

这是一条日志消息。

从 KafkaJS 的角度来看,它记录了来自 Kafka 的响应,这 returns 一个(错误)代码表明该主题存在。

KafkaJS 然后将响应转换为记录在案的 falsecreateTopics 调用返回的值。

Is it safe for me to run createTopics even if it might risk creating a topic that already exists, or do I need to do some type of error handling as well?

您尝试创建一个已经存在的主题是安全的,并且您有责任在应用程序中处理从 createTopics 获得 false 结果的情况——可能什么都不做 :)

If it is safe, is it possible to silence that error, since it is ultimately noise?

您可以为 KafkaJS 配置日志记录,所以是的,您无法在应用程序端记录此消息。