需求
kafka集群环境搭建完成后,整合到项目开发中,我需要给某个topic发送消息,以及监听消费该topic中的消息,难道我需要事先用kafka命令先去服务器创建一个topic,然后再供项目使用吗?
有没有我在项目配置文件里指定kafka的topic=xxx,然后启动服务的时候,kafka就可以自动帮我创建好呢?
解决
其实,在配置文件里指定好kafka的topic之后,调用send方法会自动帮我们创建好topic,只是创建的topic默认是1个副本和1个分区的,这一般不能满足我们的要求,所以我们还需要在kafka的server.properties里增加或修改以下参数:
num.partitions=3
auto.create.topics.enable=true
default.replication.factor=3
之后,kafka自动帮我们创建的主题都会包含3个副本和3个分区。
另外,也可以通过一些api帮我们创建好主题,这个就需要自己手动去实现创建topic的方法。