并做到分区、副本数可配置
一、操作步骤
1.1 创建 Topic 信息配置类
1.2 创建 Topic Bean 管理类
此类的作用就是把所有配置好的 Topic 信息注册成为 NewTopic Bean 到容器中
1.3 配置 Topic 信息
这样可以在配置文件中统一配置每个 Topic 的名称、分区数、副本数,项目启动后会自动创建这些 Topic
二、原理
2.1 为什么注册 NewTopic Bean 就会自动创建 Topic ?
Spring 帮我们封装了一个 KafkaAdmin 工具:org.springframework.kafka.core.KafkaAdmin
这个类的 bean 实例化后会执行一个初始化方法:
可以看到它从容器中获取 NewTopic.class 的 bean,所以这里它能获取到我们配置好,注册到容器的 topic 配置信息
然后又把获取好的 topic 信息去进行创建操作 addTopicsIfNeeded
方法:
所以自动创建 Topic 的事情,Spring 封装的 Kafka 工具里面已经帮我们做了,我们只需要把 NewTopic bean 注册到容器中即可。