我应该在每个服务spring kafka中创建NewTopics吗?



我使用Kafka在服务之间发送消息。我使用NewTopic bean来配置分区的数量,例如:

@Bean
fun kafkaTopic(kafkaProperties: KafkaProperties): NewTopic = NewTopic(
kafkaProperties.topics.schedulerCalculationTopic.name,
kafkaProperties.topics.schedulerCalculationTopic.partitions,
1
)

我的问题很简单,我应该把这个bean添加到消费者服务和生产者服务中,还是只添加到其中一个?

我会把它放在生产者服务中,然后将生产者视为这些主题的'所有者'。

但是如果你有一个场景,如果你有几个制作人来制作同一个主题,那就有点复杂了。

如果您不是动态创建主题,最佳实践是在读写主题之前创建主题。

基本原理是防止代理在接收到具有相同主题名称的元数据获取请求或消费请求时创建主题。否则,如果消费者在生产者之前启动,您可能会得到错误的分区号。(Broker将创建带有默认分区数设置的主题)

最新更新