要判断 ZooKeeper 和 Kafka 容器是否正常运行,可以通过以下几个步骤进行检查:
1. 检查容器状态
首先,检查 ZooKeeper 和 Kafka 容器是否正在运行:
docker ps
输出应包含类似以下内容:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<zookeeper_id> bitnami/zookeeper:3.8.2 "/opt/bitnami/script…" <some_time_ago> Up <some_time> 2181/tcp zookeeper
<kafka_id> bitnami/kafka:3.6.1 "/opt/bitnami/script…" <some_time_ago> Up <some_time> 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka
2. 检查 ZooKeeper 日志
查看 ZooKeeper 容器的日志,以确保它已成功启动并正在运行:
docker logs zookeeper
日志中应包含类似以下内容:
INFO Started AdminServer on address 0.0.0.0, port 8080
INFO binding to port 0.0.0.0/0.0.0.0:2181
3. 检查 Kafka 日志
查看 Kafka 容器的日志,以确保它已成功连接到 ZooKeeper 并正在运行:
docker logs kafka
日志中应包含类似以下内容:
INFO [KafkaServer id=1] started (kafka.server.KafkaServer)
INFO [ZooKeeperClient] Connected. (org.apache.zookeeper.ClientCnxn)
4. 使用 Kafka 命令行工具检查
进入 Kafka 容器内部,并使用 Kafka 命令行工具检查 Kafka 和 ZooKeeper 的状态:
docker exec -it kafka /bin/bash
# 列出 Kafka 主题
kafka-topics.sh --list --bootstrap-server kafka:9092
如果可以成功列出 Kafka 主题,则表示 Kafka 和 ZooKeeper 正常运行。
5. 创建和删除测试主题
可以尝试创建一个测试主题,并查看是否成功:
# 创建一个名为 test-topic 的主题
kafka-topics.sh --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092
# 列出所有主题,确认 test-topic 是否存在
kafka-topics.sh --list --bootstrap-server kafka:9092
# 删除 test-topic 主题
kafka-topics.sh --delete --topic test-topic --bootstrap-server kafka:9092
通过以上步骤,可以确认 ZooKeeper 和 Kafka 容器是否正常运行并相互通信。