在使用kafka发送消息和消费消息之前,必须先要创建topic,在kafka中创建topic的方式有以下3种方式。
1.Kafka创建Topic方式一
kafka broker中的conf/server.properties开启自动创建topic配置。
配置如下:
auto.create.topics.enable=true
那么当生产者向一个尚未创建的topic发送消息时,会自动创建一个num.partitions(默认值为1)个分区和default.replication.factor(默认值为1)个副本的对应topic。
不过我们一般不建议将auto.create.topics.enable参数设置为true,因为这个参数会影响topic的管理与维护。
2.Kafka创建Topic方式二
可以使用kafka-topics.sh脚本创建主题。
命令语法:
bin/kafka-topics.sh --create --topic topicname --replication-factor 1 --partitions 1 --zookeeper localhost:2181
参数说明:
- -topic:指定topic;
- -partitions:指定分区数;
- –replication-factor:用来设置主题的副本数,每个主题可以有多个副本;
示例,Created topic hello-topic:
$ ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 2 --partitions 3 --topic hello-topic
一般建议通过这种方式来创建topic,这样更加方便管理与维护。
3.Kafka创建Topic方式三
kafka的0.10版本之前,可以使用内置的kafka-admin包,后续提供了专门的类AdminClient API来进行API层面上的topic创建。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》