Kafka配置(基于容器)
Kafka的运行是基于zookeeper的,所以运行前需要确认zookeeper容器的地址
进入kafka容器
docker exec -it 容器名 /bin/sh
查看所有的topic
kafka-topics.sh --zookeeper 172.16.7.245:2181 --list
__consumer_offsets
app
--zookeeper 指定容器的IP
获取topic的详情
kafka-topics.sh --zookeeper 172.16.7.245:2181 --describe --topic app
Topic:app PartitionCount:3 ReplicationFactor:1 Configs:
Topic: app Partition: 0 Leader: 1001 Replicas: 1001 Isr: 1001
Topic: app Partition: 1 Leader: 1001 Replicas: 1001 Isr: 1001
Topic: app Partition: 2 Leader: 1001 Replicas: 1001 Isr: 1001
删除topic
kafka-topics.sh --zookeeper 172.16.7.245:2181 --delete --topic app
Topic app is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
彻底删除topic还需要操作zookeeper
# 进入zookeeper容器
docker exec -it 容器名 /bin/sh
# 进入zookeeper客户端,不同的zookeeper版本进入方式可能不同
./bin/zkCli.sh
# 查看topics数据
ls /brokers/topics
# 找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。
rmr /brokers/topics/topic名称
创建topic
kafka-topics.sh --zookeeper 172.16.7.245:2181 --create --replication-factor 1 --partitions 3 --topic app
Created topic app.
--zookeeper 表示ZK地址,可以传递多个,用逗号分隔 IP:PORT,IP:PORT,IP:PORT/kafka
--replication-factor 表示副本数量,这里的数量是包含Leader副本和Follower副本,副本数量不能超过代理数量
--partitions 表示主题的分区数量,必须传递该参数。Kafka的生产者和消费者采用多线程并行对主题的消息进行处理,每个线程处理一个分区,分区越多吞吐量就会越大,但是分区越多也意味着需要打开更多的文件句柄数量,这样也会带来一些开销。