Getting Started · Beginner
Topic Creation with KafkaAdmin
Spring creates topics at startup via KafkaAdmin. Use TopicBuilder for concise declarations. Topics are created if missing, not modified if existing.
@Configuration
public class KafkaTopicConfig {
@Bean
public NewTopic orderCreatedTopic() {
return TopicBuilder.name("orders.order.created")
.partitions(6)
.replicas(3)
.config(TopicConfig.RETENTION_MS_CONFIG, "604800000") // 7 days
.config(TopicConfig.MIN_IN_SYNC_REPLICAS_CONFIG, "2")
.build();
}
@Bean
public NewTopic orderDeadLetterTopic() {
return TopicBuilder.name("orders.order.created-dlt")
.partitions(6)
.replicas(3)
.config(TopicConfig.RETENTION_MS_CONFIG, "2592000000") // 30 days
.build();
}
@Bean
public KafkaAdmin.NewTopics allTopics() {
return new KafkaAdmin.NewTopics(
TopicBuilder.name("orders.order.updated").partitions(6).replicas(3).build(),
TopicBuilder.name("orders.order.cancelled").partitions(6).replicas(3).build()
);
}
}