kafka集群搭建
本文将记录使用kafka镜像,分别在两种场景下搭建3节点集群:1.在一台机器上使用容器方式安装kafka集群;2.在三台机器上使用容器方式安装kafka集群。此次使用的是wurstmeister的,下载量是比较大的。使用下面命令下载:docker pull wurstmeister/kafka:2.13-2.8.1先介绍第一种方式:1.在宿主机分别建立3个kafka容器ENV参数文件,改文件配置容
本文将记录使用kafka镜像,分别在两种场景下搭建3节点集群:1.在一台机器上使用容器方式安装kafka集群;2.在三台机器上使用容器方式安装kafka集群。
此次使用的是wurstmeister的,下载量是比较大的。使用下面命令下载:
docker pull wurstmeister/kafka:2.13-2.8.1
先介绍第一种方式:
1.在宿主机分别建立3个kafka容器ENV参数文件,改文件配置容器启动传入的环境变量。配置文件中的使用的zookeeper1,zookeeper2,zookeeper3容器请查看zookeeper集群搭建。
容器:kafka1
文件名:/root/kafka/kafkaetc/kafka1.list
文件内容:
KAFKA_BROKER_ID=1
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=kafka1
KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
容器:kafka2
文件名:/root/kafka/kafkaetc/kafka2.list
文件内容:
KAFKA_BROKER_ID=2
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=kafka2
KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
容器:kafka3
文件名:/root/kafka/kafkaetc/kafka3.list
文件内容:
KAFKA_BROKER_ID=3
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=kafka3
KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
2.启动容器(其中使用的容器网络是在zookeeper集群搭建中创建的)。
docker run -d --name kafka1 --network zk_network --env-file /root/kafkakafkaetc/kafka1.list wurstmeister/kafka:2.13-2.8.1
docker run -d --name kafka2 --network zk_network --env-file /root/kafkakafkaetc/kafka2.list wurstmeister/kafka:2.13-2.8.1
docker run -d --name kafka3 --network zk_network --env-file /root/kafkakafkaetc/kafka3.list wurstmeister/kafka:2.13-2.8.1
3.验证集群。
进入kafka1容器创建topic,并创建生产者:
[root@VM_0_11_centos kafkaetc]# docker exec -it kafka1 /bin/bash
bash-5.1#
bash-5.1# cd $KAFKA_HOME
bash-5.1# cd bin
bash-5.1# sh kafka-topics.sh --create --topic testtopic --partitions 4 --zookeeper zookeeper1 --replication-factor 1
bash-5.1# sh kafka-console-producer.sh --topic=testtopic --broker-list=0.0.0.0:9092
>1
>2
>3
>4
>5
>6
>7
>8
>9
>
进入kafka2容器创建消费者:
[root@VM_0_11_centos ~]# docker exec -it kafka2 /bin/bash
bash-5.1# cd $KAFKA_HOME
bash-5.1# cd bin
bash-5.1# sh kafka-console-consumer.sh --bootstrap-server kafka3:9092 --from-beginning --topic testtopic
1
2
8
9
4
5
3
6
7
验证成功:
介绍第二种部署模式:
1.分别在三个机器上创建EVN文件。
新建文件/root/docker_env_fi1e/kafka/kafka.list
#A机器:
KAFKA_BROKER_ID=1
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=A机器_ip
KAFKA_ZOOKEEPER_CONNECT=zookeeper1_IP:2181,zookeeper2_IP:2181,zookeeper3_IP:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://A机器_ip:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
#B机器:
KAFKA_BROKER_ID=2
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=B机器_ip
KAFKA_ZOOKEEPER_CONNECT=zookeeper1_IP:2181,zookeeper2_IP:2181,zookeeper3_IP:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://B机器_ip:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
#C机器:
KAFKA_BROKER_ID=3
KAFKA_ADVERTISED_PORT=9092
KAFKA_ADVERTISED_HOST_NAME=C机器_ip
KAFKA_ZOOKEEPER_CONNECT=zookeeper1_IP:2181,zookeeper2_IP:2181,zookeeper3_IP:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://C机器_ip:9092
KAFKA_LISTENERS=PLAINTEXT://:9092
2.分别在三个机器启动容器。
docker run -d --name kafka3 --env-file /root/docker_env_fi1e/kafka/kafka.list -p9092:9092 wurstmeister/kafka:2.13-2.8.1
3.验证方法同上。
更多推荐
所有评论(0)