在不同的kafkatemplate示例中重用defaultkafkaproducerfactory

xxls0lw8  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(225)

我需要发布两个不同的主题,序列化程序和配置是相同的。所以我认为创建两个kafkatemplate是个好主意,每个主题都有默认的主题,然后重用同一个producer factory示例。

new DefaultKafkaProducerFactory(producerConfigs(), keySerializer, valueSerializer)

我不使用事务,也不使用每个线程的生产者。我看到的问题是,事件丢失了,制作人设法向Kafka发布,但没有得到回应。

org.springframework.kafka.KafkaException: Send failed; nested exception is org.apache.kafka.common.errors.TimeoutException: Topic your.Topic.V1.DEV not present in metadata after 60000 ms.

使用defaultkafkaproducerfactory的两个不同示例解决了这个问题。我没有在文档中读到必须有不同的示例,因为事实上,这里让我觉得应该重用它https://docs.spring.io/spring-kafka/reference/html/#producer-工厂我使用的是SpringKafka版本2.5.11.release。我会继续挖掘代码,并试图找到它的原因,但如果已经有一个非常众所周知的原因,为什么不这样做,高兴听到。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题