kafka集群搭建

本文将记录使用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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值