主题的管理
主题的管理包括创建主题、查看主题信息、修改主题和删除主题等操作。可以通过Kafka提供的kafka-topics.sh 脚本来执行这些操作,这个脚本位于$KAFKA_HOME/bin/ 目录下,其核心代码仅有一行,具体如下:
exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@"
可以看到其实质上是调用了kafka.admin.TopicCommand 类来执行主题管理的操作。
创建主题
命令行创建主题
可以通过kafka-topics.sh 脚本来创建主题。示例如下:
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic mytopic --partitions 4 --replication-factor 2
输出:
Created topic ”mytopic”
主题,分区,副本,日志的关系
主题和分区都是提供给上层用户的抽象, 而在副本层面或更加确切地说是Log 面才有实际物理上的存在。同一个分区中的多个副本必须分布在不同的broker 中,这样才能提供有效的数据冗余。
Zookeeper数据
KafkaAdminClient
分区的管理
分区数的选择