Docker容器搭建Kafka集群的详细过程

 更新时间:2022年03月20日 11:27:22   作者:愚公搬代码  
这篇文章主要介绍了Docker容器 Kafka集群的搭建,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、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个分区,如图所示:

集群节点说明:

  • Topic: TestTopic PartitionCount: 5 ReplicationFactor:3代表TestTopic有5个分区,3个副本节点;
  • Topic: 代表主题名称
  • Leader代表主题节点号,
  • Replicas代表他的副本节点有Broker.id = 2、0、1(包括Leader Replica和Follower Replica,且不管是否存活),
  • Isr表示存活并且同步Leader节点的副本有Broker.id = 2、0、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

到此这篇关于Docker容器 Kafka集群的搭建的文章就介绍到这了,更多相关Docker搭建Kafka集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker搭建服务器监控面板的实现示例

    Docker搭建服务器监控面板的实现示例

    Docker服务器监控面板是一种用于监控容器运行情况的工具,本文主要介绍了Docker搭建服务器监控面板的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • docker-compose部署Java应用和相关依赖方式

    docker-compose部署Java应用和相关依赖方式

    介绍如何使用docker-compose一键部署Java应用及依赖,并实现MySQL数据库的自动初始化
    2024-10-10
  • 解决docker push报错denied问题

    解决docker push报错denied问题

    Docker Push权限错误需先登录私有仓库,创建项目并打指定tag,若推送到Docker Hub个人仓库,确保登录信息正确,权限匹配即可完成推送
    2025-08-08
  • docker save镜像时进行gzip压缩方式

    docker save镜像时进行gzip压缩方式

    文章介绍了三种Docker镜像压缩方法:管道压缩(推荐,使用gzip/pigz,速度快)、xz压缩(高压缩比但慢)、及先保存再压缩(不推荐,占空间),建议日常用管道gzip,传输用xz,避免直接保存未压缩文件
    2025-08-08
  • CentOS7安装使用Docker的步骤

    CentOS7安装使用Docker的步骤

    本篇文章主要介绍了详解CentOS7安装使用Docker的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • docker 复制容器的项目实践

    docker 复制容器的项目实践

    本文主要介绍了docker 复制容器的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • Docker镜像导出与导入与拷贝实例分析

    Docker镜像导出与导入与拷贝实例分析

    在本篇文章里小编给大家整理的是关于Docker镜像导出与导入与拷贝实例分析,有需要的朋友们可以参考下。
    2020-02-02
  • docker部署mysql+phpmyadmin的3种方式

    docker部署mysql+phpmyadmin的3种方式

    本文介绍了三种访问phpmyadmin的方法:link、network和docker-compose.yml,docker-compose.yml文件内容为:打开浏览器,输入localhost:8080即可访问phpmyadmin界面,帐号密码都是root
    2024-12-12
  • docker如何搭建samba共享目录

    docker如何搭建samba共享目录

    文章介绍了如何使用Docker搭建一个Samba共享文件系统,首先安装了Docker容器,然后下载并拉取了Samba镜像,在本地创建了一个目录用于挂载,启动容器并添加了SMB用户名和密码,验证挂载成功,最后总结了主要参数
    2025-03-03
  • Docker与docker-compose中volume参数的使用方式

    Docker与docker-compose中volume参数的使用方式

    文章介绍了Docker中的数据卷Volume的概念及其在宿主机和容器之间的数据共享和持久化,它详细说明了两种数据挂载方式:通过宿主机绝对路径挂载和通过卷标映射挂载,包括匿名挂载和具名挂载,同时,文章还展示了如何通过docker命令查看数据卷的宿主机目录
    2024-11-11

最新评论