【愚公系列】2022年03月 Docker容器 Kafka集群的搭建

举报
愚公搬代码 发表于 2022/03/20 00:01:34 2022/03/20
【摘要】 一、Kafka集群的搭建 1.拉取相关镜像docker pull wurstmeister/kafkadocker pull zookeeper 2.运行zookeeperdocker run -d --name zookeeper -p 2181:2181 -t zookeeper 3.运行kafkaKafka0:docker run -d --name kafka0 -p 9092:9...

一、Kafka集群的搭建

1.拉取相关镜像

docker pull wurstmeister/kafka
docker pull zookeeper

在这里插入图片描述

2.运行zookeeper

docker run -d --name zookeeper -p 2181:2181 -t zookeeper

在这里插入图片描述

3.运行kafka

Kafka0:

docker run -d --name kafka0 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

Kafka1:

docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka

Kafka2:

docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.16.129:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.16.129:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka

参数说明:

  • -e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
  • -e KAFKA_ZOOKEEPER_CONNECT=10.20.8.50:2181/kafka 配置zookeeper管理kafka的路径10.20.8.50:2181/kafka
  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.20.8.50:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP。
  • -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口:这个不能改
  • -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

启动3个Kafka节点
在这里插入图片描述

4.设置topic

进入kafka0

docker exec -it kafka0 /bin/bash

进入bin目录

cd /opt/kafka_2.13-2.8.1/bin

在这里插入图片描述

创建topic

kafka-topics.sh --create --zookeeper 192.168.16.129:2181 --replication-factor 3 --partitions 5 --topic TestTopic

查看topic

kafka-topics.sh --describe --zookeeper 192.168.16.129:2181 --topic TestTopic

Kafka的topic所有分区会分散在不同Broker上,所以该topic的5个分区会被分散到3个Broker上,其中有两个Broker得到两个分区,另一个Broker只有1个分区,如图所示:
在这里插入图片描述
集群节点说明:

5.进行生产者和消费者测试

分别在Broker0上运行一个生产者,Broker1、2上分别运行一个消费者:

kafka-console-producer.sh --broker-list 192.168.16.129:9092 --topic TestTopic

kafka-console-consumer.sh --bootstrap-server 192.168.16.129:9093 --topic TestTopic --from-beginning

kafka-console-consumer.sh --bootstrap-server 192.168.16.129:9094 --topic TestTopic --from-beginning

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。