Topic 主题

当kafka数据进行持久化的时,为了区分不同的业务主题,设计了主题这个概念,类似数据库会有数据库名,数据库有若干数据表。不同类型消息数据按一定的规则进行分类,最后相同类型业务数据存储到同一个主题下。

创建topic

自动创建

通过auto.create.topocs.enable属性来自动创建主题,默认该值是true。当生产者项kafk发送一个不存在的主题的时候,kafka会创建一个默认配置系数的主题。其中默认分区的数值由num.partitions控制,默认副本系数由default.replication.factor控制。具体配置文件在当前kafka的config/server.properties

手动创建

具体命令如下,主题名是topic-test,由于是开发环境搭建 分区和副本分区都是1

  1. $ kafka-topics.sh --zookeeper localhost: 2181/kafka --create --topic topic-test --replication-factor 1 --partitions 1
  2. Created topic "topic-test".

—topic 定义topic名
—replication-factor 定义副本数
—partitions 定义分区数

查看topic

查看所有的topic

  1. $kafka-topics.sh --list -zookeeper localhost:2181
  2. __consumer_offsets
  3. topic-test

查看topic 详情

  1. $ kafka-topics.sh --zookeeper localhost:2181 --describe --topic topic-test
  2. Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
  3. Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0

发送/接收消息

  1. $ kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test
  2. >hello kafka
  3. >hello world
  1. kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic topic-test
  2. hello world

删除

  1. $ kafka-topic.sh --zookeeper localhost:2181 -delete --topic topic-test
  2. Topic topic-test is marked for deletion.
  3. Note: This will have no impact if delete.topic.enable is not set to true.