docker kafka集群搭建

作者: szgl_lucifer | 来源:发表于2019-01-10 16:44 被阅读25次

    准备两台虚拟机

    192.168.155.44   安装zookeeper、kafka

    192.168.155.46  安装kafka

    1:在192.168.155.44 虚拟机上kafka需要zookeeper管理,所以需要先安装zookeeper。 下载docker pull wurstmeister/zookeeper:latest版本

    docker pull wurstmeister/zookeeper

    2:启动镜像生成容器

    docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper

    3:下载kafka镜像

    docker pull wurstmeister/kafka

    4:启动kafka镜像生成容器

    docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.155.44:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.155.44:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

    -e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

    -e KAFKA_ZOOKEEPER_CONNECT=192.168.155.44:2181/kafka 配置zookeeper管理kafka的路径192.168.155.44:2181/kafka

    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.155.44:9092  把kafka的地址端口注册给zookeeper

    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口

    -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

    5:创建一个topic测试下看kafka是否正常运行

    进入容器:

    docker exec -it kafka /bin/sh

    cd opt/bin

    运行语句:

    kafka-topics.sh --create --topic test --zookeeper 192.168.155.44:2181/kafka --replication-factor 2 --partitions 2

    报错,因为我只建立了一个kafka容器,建立不出来两个replication-factor 2

    运行语句:

    kafka-topics.sh --create --topic test --zookeeper 192.168.155.44:2181/kafka --replication-factor 1 --partitions 2

    查看topic的详细信息:

    kafka-topics.sh --describe --zookeeper 192.168.155.44:2181/kafka --topic test

    可以看到建立的两个分区都在BROKER_ID=0这个节点上

    6:在192.168.155.46虚拟机上再安装一个kafka容器。

    运行容器:

    docker run -d --name kafka -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.155.44:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.155.44:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -v /etc/localtime:/etc/localtime wurstmeister/kafka

    其中需要注意:

    1)端口我修改成了9093:9093

    2)KAFKA_BROKER_ID从0修改成了1  KAFKA_BROKER_ID=1

    3)后面的链接端口都是9093

    启动成功后,kafka集群就已经搭建完成了

    7:测试集群功能

    进入kafka容器,进入44或46的kafka容器都可以,我进入的是44的kafka容器

    运行语句

    kafka-topics.sh --create --topic test1 --zookeeper 192.168.155.44:2181/kafka --replication-factor 2 --partitions 2

    这时用--replication-factor 2已经不报错了。

    查询topic=test1的详细信息:

    kafka-topics.sh --describe --zookeeper 192.168.155.44:2181/kafka --topic test1

    可以看到1个分区在BROKER_ID=0上,一个分区在BROKER_ID=1上。说明kafka集群已经搭建成功。

    我们把46的kafka容器关闭掉

    docker stop kafka

    再在44的kafka容器中查看topic=test1的详细信息:

    kafka-topics.sh --describe --zookeeper 192.168.155.44:2181/kafka --topic test1

    我们可以发现,两个分区对应的节点都指向了BROKER_ID=0,实现了高可用。

    8:介绍下docker-compose的安装,kafka集群也可以用docker-compose启动

    docker-compose可以管理docker的容器启动,感兴趣的小伙伴可以自行上网学习下

    1:先安装docker-compose

    pip -V

    yum -y install epel-release

    yum -y install python-pip

    pip install --upgrade pip

    pip -V

    pip install docker-compose

    docker-compose -version

    安装docker-compose完成,版本是1.23.2

    -----------------------以后补充docker-compose启动kafka集群文档

    相关文章

      网友评论

        本文标题:docker kafka集群搭建

        本文链接:https://www.haomeiwen.com/subject/ldoorqtx.html