environment:
ubuntu 16.04
docker-version: 18.09.7
docker-compose: 1.8.0
zookeeper(docker): lastest, port:28031
kafka(docker): lastest, port:28035
因为是ubuntu系统,所以输入docker命令前都加上sudo,为了输入省事,这里我们切换至root账号操作
切换root账号
sudo -i
password
进入kafka容器(容器名称: kafka-service)
docker exec -it kafka-service /bin/bash
进入kafka默认目录
cd /opt/kafka
手动创建topic
sh kafka-topics.sh --create --zookeeper zookeeper-service:28031 --replication-factor 1 --partitions 8 --topic groupName
手动创建生产者
sh kafka-console-producer.sh --broker-list localhost:28035 --topic groupName
手动消费某个topic
sh kafka-console-consumer.sh --bootstrap-server localhost:28035 --topic groupName--from-beginning
查看kafka的topic列表
bin/kafka-topics.sh --list --zookeeper zookeeper-service:28031
或者
bin/kafka-topics.sh --list --zookeeper ip:28031
查看所有消费者组
bin/kafka-consumer-groups.sh -bootstrap-server kafka-service:28035 -list
或者
bin/kafka-consumer-groups.sh -bootstrap-server ip:28035 -list
查看某组下某topic消费情况
bin/kafka-consumer-groups.sh -bootstrap-server kafka-service:28035 -group groupName -describe | grep topicName
或者
bin/kafka-consumer-groups.sh -bootstrap-server ip:28035 -group groupName -describe | grep topicName
清除kafka消息
1. 停掉调用kafka的docker容器
docker stop main-serivice
2. 清除kafka容器中的消息日志
删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
cd /kafka && rm -rf kafka-logs*
3. 删除zookeeper中topic信息
(1) 登录客户端
docker exec -it zookeeper-service zkCli.sh
(2) 找到topic所在的目录
ls /brokers/topics
(3) 彻底删除topic
rmr /brokers/topics/topicName
(4) 退出客户端
quit
4. 删除zookeeper容器中日志
(1) 进入zookeeper容器
docker exec -it d7cb18388ee6 /bin/bash
(2) 删除日志
cd /data && rm -rf version-2
(3) 退出容器
exit
5. 重启(按顺序)
(1) 重启zookeeper
docker restart zookeeper-service
(2) 重启kafka
docker restart kafka-service
(3) 重启调用kafka的docker容器
docker restart main-serivice