通过docker搭建kafka集群

本文详细介绍了如何在CentOS7系统中使用Docker部署单个Kafka节点,包括配置YUM源、安装Docker、下载和启动Kafka与Zookeeper镜像。还解决了启动过程中遇到的错误,通过更新RPM并重启容器来解决问题。接着,创建了三个Kafka节点构成集群,并验证了所有节点的启动成功。整个过程涵盖了Kafka和Zookeeper的容器化部署,以及集群的搭建与测试。
摘要由CSDN通过智能技术生成
  • 启动一个虚拟机 centos7

  • 配置yum源

  • 安装docker

    yum -y install docker
    
  • 启动 Docker 后台服务

    service docker start
    
  • 执行如下命令,确认docker可用

    docker image ls
    
  • 使用docker命令搜索kafka和zookeeper命令

    docker search kafka
    docker search zookeeper
    
  • 下载排名较高的镜像,时间较长

    docker pull docker.io/wurstmeister/zookeeper
    docker pull wurstmeister/kafka  
    
  • 确认镜像下载成功

    [root@master ~]# docker images
    REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
    docker.io/wurstmeister/kafka       latest              f1905dce9659        7 weeks ago         431 MB
    docker.io/wurstmeister/zookeeper   latest              3f43f72cb283        17 months ago       510 MB
    
  • 启动zookeeper

    docker run -d --name zookeeper -p 2181:2181 -t docker.io/wurstmeister/zookeeper
    
  • 启动可能报错:

    Error response from daemon: oci runtime error: container_linux.go:235: 
    
  • 解决办法: 将所有rpm更新到最新

    yum -y update
    
  • 更新完后先删掉之前的container

    docker container ls -a
    docker container rm <container_id>
    
  • 重新启动zookeeper

    docker run -d --name zookeeper -p 2181:2181 -t docker.io/wurstmeister/zookeeper
    
  • 查看端口,确认启动成功了

    netstat -nlp|grep 2181
    
  • 启动kafka

    docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t docker.io/wurstmeister/kafka
    
  • 查看端口,确认启动成功了

    netstat -nlp|grep 9092
    
  • 通过如下命令确认zk和kafka是否启动成功了

    docker ps -a
    
  • 进入kafka容器, 629c0f149e27是Kafka容器 ID,每次不一样

    docker exec -it 735c810c2d55 /bin/bash
    
  • 测试功能 --测试完成

    创建topic
    /opt/kafka/bin/kafka-topics.sh --create --zookeeper 172.28.128.14:2181 --replication-factor 1 --partitions 1 --topic function_test
    消费者
    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.28.128.14:9092 --topic function_test
    生产者
    /opt/kafka/bin/kafka-console-producer.sh --broker-list 172.28.128.14:9092 --topic function_test
    查看topic列表
    /opt/kafka/bin/kafka-topics.sh --list --zookeeper 172.28.128.14:2181
    删除topic
    /opt/kafka/bin/kafka-topics.sh --delete --zookeeper 172.28.128.14:2181 --topic function_test
    
  • 退出容器

    exit
    
  • 此时完成了单个节点的kafka容器,多个节点的kafka集群容器部署参考下面步骤

  • 分别创建3个Kafka节点,并注册到ZK上:

    # kafak0
    docker run -d --name kafka01 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -h kafka01 -t docker.io/wurstmeister/kafka
    # kafka1
    docker run -d --name kafka02 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -h kafka02 -t docker.io/wurstmeister/kafka
    # kafka2
    docker run -d --name kafka03 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=172.28.128.14:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.28.128.14:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -h kafka03 -t docker.io/wurstmeister/kafka
    
  • 执行如下命令。确认容器启动成功

    docker ps -a
    
  • 至此通过docker搭建kafka集群成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值