我正在使用KafkaJS动态创建一系列主题,并发现为了做到这一点而不产生选举问题,我应该使用createTopics
管理功能。
问题是,如果对已经存在的主题调用createTopics
,它不仅返回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}
我意识到这个错误直接来自Kafka协议,但我很担心,因为错误就是错误。
对我来说运行createTopics
是否安全,即使它可能会冒创建已经存在的主题的风险,或者我是否也需要进行某种类型的错误处理?
如果它是安全的,有可能消除这个错误吗,因为它最终是噪音?
,但它也会发出一个错误,声明"具有此名称的主题已经存在"。
这是一条日志消息。
从KafkaJS的角度来看,它记录了Kafka的响应,Kafka正确地返回了一个(错误(代码,指示主题存在。
然后,KafkaJS将响应转换为从createTopics
调用返回的记录的false
值。
运行createTopics是否安全,即使它可能有创建已经存在的主题的风险,或者我是否也需要进行某种类型的错误处理?
尝试创建一个已经存在的主题是安全的,您在应用程序中有责任处理从createTopics
获得false
结果的情况——可能什么都不做:(
如果它是安全的,是否可以消除该错误,因为它最终是噪声?
您可以为KafkaJS配置日志记录,所以是的,您无法在应用程序端记录此消息。