千家信息网

使用Docker快速搭建Zookeeper和kafka集群

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,集群搭建镜像选择Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeister/kafka镜像集群规划hostnameIp add
千家信息网最后更新 2025年02月01日使用Docker快速搭建Zookeeper和kafka集群

集群搭建

镜像选择

Zookeeper和Kafka集群分别运行在不同的容器中
zookeeper官方镜像,版本3.4
kafka采用wurstmeister/kafka镜像

集群规划
hostnameIp addrportlistener
zoo1172.19.0.112184:2181
zoo2172.19.0.122185:2181
zoo3172.19.0.132186:2181
kafka1172.19.0.149092:9092kafka1
kafka2172.19.0.159093:9093kafka2
Kafka3172.19.0.169094:9094Kafka3
宿主机root OSX192.168.21.139【DHCP获取,会变动】
实现目标

kafka集群在docker网络中可用,和zookeeper处于同一网络
宿主机可以访问zookeeper集群和kafka的broker list
docker重启时集群自动重启
集群的数据文件映射到宿主机器目录中
使用yml文件和$ docker-compose up -d命令创建或重建集群

$ docker-compose up -d
zk集群的docker-compose.yml
version: '3.4'services:  zoo1:    image: zookeeper    restart: always    hostname: zoo1    container_name: zoo1    ports:    - 2184:2181    volumes:    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo1/data:/data"    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo1/datalog:/datalog"    environment:      ZOO_MY_ID: 1      ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888    networks:      br17219:        ipv4_address: 172.19.0.11  zoo2:    image: zookeeper    restart: always    hostname: zoo2    container_name: zoo2    ports:    - 2185:2181    volumes:    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo2/data:/data"    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo2/datalog:/datalog"    environment:      ZOO_MY_ID: 2      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888    networks:      br17219:        ipv4_address: 172.19.0.12  zoo3:    image: zookeeper    restart: always    hostname: zoo3    container_name: zoo3    ports:    - 2186:2181    volumes:    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo3/data:/data"    - "/Users/shaozhipeng/Development/volume/zkcluster/zoo3/datalog:/datalog"    environment:      ZOO_MY_ID: 3      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888    networks:      br17219:        ipv4_address: 172.19.0.13networks:  br17219:    external:      name: br17219
kafka集群的docker-compose.yml

kfkluster少拼了个c...

version: '2'services:  kafka1:    image: wurstmeister/kafka    restart: always    hostname: kafka1    container_name: kafka1    ports:    - 9092:9092    environment:      KAFKA_ADVERTISED_HOST_NAME: kafka1      KAFKA_ADVERTISED_PORT: 9092      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181    volumes:    - /Users/shaozhipeng/Development/volume/kfkluster/kafka1/logs:/kafka    external_links:    - zoo1    - zoo2    - zoo3    networks:      br17219:        ipv4_address: 172.19.0.14  kafka2:    image: wurstmeister/kafka    restart: always    hostname: kafka2    container_name: kafka2    ports:    - 9093:9093    environment:      KAFKA_ADVERTISED_HOST_NAME: kafka2      KAFKA_ADVERTISED_PORT: 9093      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181    volumes:    - /Users/shaozhipeng/Development/volume/kfkluster/kafka2/logs:/kafka    external_links:    - zoo1    - zoo2    - zoo3    networks:      br17219:        ipv4_address: 172.19.0.15  kafka3:    image: wurstmeister/kafka    restart: always    hostname: kafka3    container_name: kafka3    ports:    - 9094:9094    environment:      KAFKA_ADVERTISED_HOST_NAME: kafka3      KAFKA_ADVERTISED_PORT: 9094      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181    volumes:    - /Users/shaozhipeng/Development/volume/kfkluster/kafka3/logs:/kafka    external_links:    - zoo1    - zoo2    - zoo3    networks:      br17219:        ipv4_address: 172.19.0.16networks:  br17219:    external:      name: br17219

结果查看和测试

宿主机命令行创建topic
$ pwd/Users/shaozhipeng/Development/kafka_2.11-2.0.0/bin$ ./kafka-topics.sh --create --zookeeper localhost:2184,localhost:2185,localhost:2186 --replication-factor 1 --partitions 1 --topic test1
Kafka Tool查看

docker ps查看正在运行的容器

查看宿主机IP地址,并设置Host

这样宿主机就可以访问kafka集群了

原文地址

集群 宿主 宿主机 镜像 命令 地址 容器 文件 网络 运行 不同 原文 官方 数据 机器 正在 版本 目录 目标 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 三个网站怎么合并用户数据库 java卡死在读取数据库 近10年发生的网络安全事件 软件开发的年终奖 嘉定区互联网络技术服务多少钱 疯狂乐斗看视频提示服务器异常 杭州选校帝互联网科技有限公司 物联网lwip并发服务器 冒险岛数据库首页 做服务器管理赚钱吗 软件开发视频教程第四讲 雷麦尔互联网科技有限公司 网络安全防护监测情况 山西党建设计软件开发 传统数据库集群和分布式数据库 汇客通网络技术 我的世界免费服务器电脑版下载 中科软科技互联网怎么样 用函数对比表格中数据库 用命令方式打开数据库 嘉定区互联网络技术服务多少钱 清华大学教授解读网络安全 韶关网络安全工程师十大品牌 网络安全防护监测情况 2009比特币网络技术 网络安全法 判断题 好用的数据库开发软件 柳州网络安全实战培训老品牌 查看远程数据库编码格式 融资数据库
0