Kafka Docker集群搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos 企业版免费试用,1600元额度,限量50份
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 1. Zookeeper下载http://apache.org/dist/zookeeper/http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.
1. Zookeeper下载
http://apache.org/dist/zookeeper/

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
AI 代码解读
2.Kafka下载
http://apache.org/dist/kafka/
http://mirror.bit.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz
AI 代码解读
3,Zookeeper的Docker镜像制作
  • 可以直接使用Zookeeper镜像

    docker pull zookeeper
    AI 代码解读
  • 也可以自己使用Dockerfile制作

    #基础镜像使用java,这样可以免于设置java环境
    FROM java
    
    #作者
    MAINTAINER Bonker <bonker@foxmail.com>
    
    #定义工作目录
    ENV WORK_PATH /opt/zkcluster/zkconf
    
    #定义zookeeper文件夹名称
    ENV ZOOKEEPER_PACKAGE_NAME zookeeper-3.4.9
    
    #创建工作目录
    RUN mkdir -p $WORK_PATH
    
    #把zookeeper压缩文件复制到工作目录
    COPY ./$ZOOKEEPER_PACKAGE_NAME.tar.gz $WORK_PATH/
    
    #解压缩
    RUN tar -xvf $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz -C $WORK_PATH/
    
    #删除压缩文件
    RUN rm $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz
    
    #给shell赋予执行权限
    RUN chmod a+x $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh
    
    RUN mv $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo_sample.cfg $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo.cfg
    
    ENTRYPOINT  $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh start-foreground
    #ENTRYPOINT  ["/bin/sh -c",$WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh]
    #CMD [start-foreground]
    AI 代码解读
  • 构建zookeeper

    docker build -t bonker/zookeeper:3.4.9 .
    AI 代码解读
  • 运行docker

    docker run -d -p 2181:2181 --name zookeeper3.4.9 bonker/zookeeper:3.4.9
    AI 代码解读
4,Kafka的Docker镜像制作
  • 编写执行脚本kafkaStart.sh

    sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
    $WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
    AI 代码解读
  • 编写Dockerfile

    #基础镜像使用java,这样可以免于设置java环境
    FROM java
    
    #作者
    MAINTAINER Bonker <bonker@foxmail.com>
    
    #定义工作目录
    ENV WORK_PATH /usr/local/work
    
    #定义kafka文件夹名称
    ENV KAFKA_PACKAGE_NAME kafka_2.10-0.10.0.0
    
    #创建工作目录
    RUN mkdir -p $WORK_PATH
    
    #把kafka压缩文件复制到工作目录
    COPY ./$KAFKA_PACKAGE_NAME.tgz $WORK_PATH/
    
    #把kafka执行脚本复制到工作目录
    COPY ./kafkaStart.sh $WORK_PATH/
    
    #给shell赋予执行权限
    RUN chmod a+x $WORK_PATH/kafkaStart.sh
    
    #解压缩
    RUN tar -xvf $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz -C $WORK_PATH/
    
    #删除压缩文件
    RUN rm $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz
    
    #执行sed命令修改文件,将连接zk的ip改为link参数对应的zookeeper容器的别名
    RUN sed -i 's/zookeeper.connect=localhost:2181/zookeeper.connect=zkhost:2181/g' $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
    
    #执行sed命令修改文件,改变brokerId
    #RUN sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
    
    #CMD $WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
    CMD $WORK_PATH/kafkaStart.sh
    AI 代码解读
  • 构建kafka

    docker build -t bonker/kafka:2.10-0.10.0.0 .
    AI 代码解读
5,安装docker-compose
  1. 安装python-pip

    yum -y install epel-release
    yum -y install python-pip
    AI 代码解读
  2. 安装docker-compose

    pip install docker-compose
    待安装完成后,执行查询版本的命令,即可安装docker-compose
    docker-compose version
    AI 代码解读
6,运行Dokcer容器
  • 编写docker-compose.yml
version: '2'
services: 
  zk_server: 
    image: bonker/zookeeper:3.4.9
    restart: always
  kafka_server: 
    image: bonker/kafka:2.10-0.10.0.0
    ports: 
      - "9091:9092"
    environment: 
     BROKER_ID: 1
    links: 
      - zk_server:zkhost
    restart: always
  message_producer: 
    image: bonker/kafka:2.10-0.10.0.0
    ports: 
      - "9092:9092"
    environment: 
     BROKER_ID: 2
    links: 
      - zk_server:zkhost
    restart: always
  message_consumer: 
    image: bonker/kafka:2.10-0.10.0.0
    ports: 
      - "9093:9092"
    environment: 
     BROKER_ID: 3
    links: 
      - zk_server:zkhost
    restart: always
AI 代码解读
  • 启动容器
现在打开终端,在docker-compose.yml所在目录下执行docker-compose up -d,即可启动所有容器
AI 代码解读
作者:Bonker
出处:http://www.cnblogs.com/Bonker
QQ:519841366
       
本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利
目录
打赏
0
0
0
0
5
分享
相关文章
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
265 79
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
180 10
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
649 91
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
248 4
搭建Zookeeper、Kafka集群
本文详细介绍了Zookeeper和Kafka集群的搭建过程,涵盖系统环境配置、IP设置、主机名设定、防火墙与Selinux关闭、JDK安装等基础步骤。随后深入讲解了Zookeeper集群的安装与配置,包括数据目录创建、节点信息设置、SASL认证配置及服务启动管理。接着描述了Kafka集群的安装,涉及配置文件修改、安全认证设置、生产消费认证以及服务启停操作。最后通过创建Topic、发送与查看消息等测试验证集群功能。全网可搜《小陈运维》获取更多信息。
267 1
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
481 28
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
705 2
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
415 64
秒级灾备恢复:Kafka 2025 AI自愈集群下载及跨云Topic迁移终极教程
Apache Kafka 2025作为企业级实时数据中枢,实现五大革新:量子安全传输(CRYSTALS-Kyber抗量子加密算法)、联邦学习总线(支持TensorFlow Federated/Horizontal FL框架)、AI自愈集群(MTTR缩短至30秒内)、多模态数据处理(原生支持视频流、3D点云等)和跨云弹性扩展(AWS/GCP/Azure间自动迁移)。平台采用混合云基础设施矩阵与软件依赖拓扑设计,提供智能部署架构。安装流程涵盖抗量子安装包获取、量子密钥配置及联邦学习总线设置。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问