赞
踩
使用 Docker Compose 部署 Apache Kafka 集群可以简化多容器应用程序的定义和管理。以下是在 Linux 环境中使用 Docker Compose 部署包含 ZooKeeper 和多个 Kafka 节点的实战步骤:
确保您的 Linux 系统上已经安装了 Docker 以及 Docker Compose。如果没有,请参考官方文档根据您的系统(如 CentOS、Ubuntu、Debian 等)安装:
docker-compose.yml
文件在项目根目录下创建一个名为 docker-compose.yml
的文件,用于定义服务、网络、卷等配置。以下是一个包含单 ZooKeeper 节点和两个 Kafka 节点的示例配置:
version: '3' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka-1: image: wurstmeister/kafka depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENERS: PLAINTEXT://:9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 kafka-2: image: wurstmeister/kafka depends_on: - zookeeper ports: - "9093:9092" environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENERS: PLAINTEXT://:9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2 networks: default: name: kafka-cluster-network
注意:
KAFKA_BROKER_ID
必须唯一。KAFKA_ADVERTISED_LISTENERS
应设置为其他 Kafka 节点和外部客户端可以访问的地址。这里使用服务名称(如 kafka-1
、kafka-2
)作为内部 DNS 解析,确保集群内通信。在包含 docker-compose.yml
文件的目录下,运行以下命令启动整个集群:
docker-compose up -d
-d
参数表示在后台(detached mode)运行容器。
使用 docker-compose logs
查看容器日志确认启动成功。然后,可以使用 Kafka 工具(如 kafka-topics.sh
、kafka-console-producer.sh
、kafka-console-consumer.sh
)测试 Kafka 集群的功能:
docker-compose exec kafka-1 kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 2 --if-not-exists --zookeeper zookeeper:2181
docker-compose exec kafka-1 kafka-topics.sh --describe --topic test-topic --zookeeper zookeeper:2181
# 在一个终端窗口中启动生产者
docker-compose exec kafka-1 kafka-console-producer.sh --topic test-topic --bootstrap-server kafka-1:9092,kafka-2:9092
# 在另一个终端窗口中启动消费者
docker-compose exec kafka-1 kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server kafka-1:9092,kafka-2:9092
docker-compose.yml
文件中为 Kafka 和 ZooKeeper 服务添加 volumes
配置,将数据目录挂载到宿主机的目录上,避免数据丢失。通过以上步骤,您已经在 Docker Compose 环境中成功部署了 Kafka 集群,并进行了初步的验证。Docker Compose 使得管理和扩展集群变得更为便捷,只需修改 docker-compose.yml
文件即可调整集群配置,使用 docker-compose up
、docker-compose down
、docker-compose scale
等命令进行相应的操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。