主机三台
172.16.100.61
172.16.100.62
172.16.100.63
Docker 版本 当前最新版

# 部署zk有2种方法

## 注意 \后不要跟空格

一 . 端口映射

172.16.100.61 执行

docker run -tid --name=zk- \
--restart=always \
--privileged=true \
-p : \
-p : \
-p : \
-e ZOO_MY_ID= \
-e ZOO_SERVERS=server.="0.0.0.0:2888:3888 server.2=172.16.100.62:2888:3888 server.3=172.16.100.63:2888:3888" \
-v /data/kafka_cluster/zookeeper/data:/data \
zookeeper:latest

172.16.100.62 执行

docker run -tid --name=zk- \
--restart=always \
--privileged=true \
-p : \
-p : \
-p : \
-e ZOO_MY_ID= \
-e ZOO_SERVERS=server.="172.16.100.61:2888:3888 server.2=0.0.0.0:2888:3888 server.3=172.16.100.63:2888:3888" \
-v /data/kafka_cluster/zookeeper/data:/data \
zookeeper:latest

172.16.100.63 执行

docker run -tid --name=zk- \
--restart=always \
--privileged=true \
-p : \
-p : \
-p : \
-e ZOO_MY_ID= \
-e ZOO_SERVERS=server.="172.16.100.61:2888:3888 server.2=172.16.100.62:2888:3888 server.3=0.0.0.0:2888:3888" \
-v /data/kafka_cluster/zookeeper/data:/data \
zookeeper:latest

#查看集群状态

docker exec -it zk- bash ./bin/zkServer.sh status

二.直接走宿主机IP

每台机器都执行一次,只需要修改 ZOO_MY_ID 即可 只要ZOO_SERVERS 和你的ID一致即可

docker run -tid --name=zk- \
--restart=always \
--privileged=true \
--net=host \
-e ZOO_MY_ID= \
-e ZOO_SERVERS=server.="172.16.100.61:2888:3888 server.2=172.16.100.62:2888:3888 server.3=172.16.100.63:2888:3888" \
-v /data/kafka_cluster/zookeeper/data:/data \
zookeeper:latest

### 上述zk检查过后没有问题就可以进行下一步了 ###

解析主机名

注意: kafka-logs-data-1 是主机的名字 如果你的主机是xxx 那这里应该改为kafka-logs-xxx

同时我映射了本地的hosts到容器里,所有容器获取到的主机名就是宿主机的名字

在61执行

docker run -itd --name=kafka \
--restart=always \
--net=host \
--privileged=true \
-v /etc/hosts:/etc/hosts \
-v /data/kafka_cluster/kafka/data:/kafka/kafka-logs-data- \
-v /data/kafka_cluster/kafka/logs:/opt/kafka/logs \
-e KAFKA_ADVERTISED_HOST_NAME=172.16.100.61 \
-e HOST_IP=172.16.100.61 \
-e KAFKA_ADVERTISED_PORT= \
-e KAFKA_ZOOKEEPER_CONNECT=172.16.100.61:,172.16.100.62:,172.16.100.63: \
-e KAFKA_BROKER_ID= \
-e KAFKA_HEAP_OPTS="-Xmx8196M -Xms8196M" \
wurstmeister/kafka:0.10.1.1

在62执行

docker run -itd --name=kafka \
--restart=always \
--net=host \
--privileged=true \
-v /etc/hosts:/etc/hosts \
-v /data/kafka_cluster/kafka/data:/kafka/kafka-logs-data- \
-v /data/kafka_cluster/kafka/logs:/opt/kafka/logs \
-e KAFKA_ADVERTISED_HOST_NAME=172.16.100.62 \
-e HOST_IP=172.16.100.62 \
-e KAFKA_ADVERTISED_PORT= \
-e KAFKA_ZOOKEEPER_CONNECT=172.16.100.61:,172.16.100.62:,172.16.100.63: \
-e KAFKA_BROKER_ID= \
-e KAFKA_HEAP_OPTS="-Xmx8196M -Xms8196M" \
wurstmeister/kafka:0.10.1.1

在63执行

docker run -itd --name=kafka \
--restart=always \
--net=host \
--privileged=true \
-v /etc/hosts:/etc/hosts \
-v /data/kafka_cluster/kafka/data:/kafka/kafka-logs-data- \
-v /data/kafka_cluster/kafka/logs:/opt/kafka/logs \
-e KAFKA_ADVERTISED_HOST_NAME=172.16.100.63 \
-e HOST_IP=172.16.100.63 \
-e KAFKA_ADVERTISED_PORT= \
-e KAFKA_ZOOKEEPER_CONNECT=172.16.100.61:,172.16.100.62:,172.16.100.63: \
-e KAFKA_BROKER_ID= \
-e KAFKA_HEAP_OPTS="-Xmx8196M -Xms8196M" \
wurstmeister/kafka:0.10.1.1

##创建topic test

#订阅
docker exec -it kafka  bash /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.16.100.61:9092,172.16.100.62:9092,172.16.100.63:9092 --topic test --from-beginning

#发送消息
docker exec -it kafka  bash /opt/kafka/bin/kafka-console-producer.sh --broker-list 172.16.100.61:9092,172.16.100.62:9092,172.16.100.63:9092 --topic test

docker 部署 zookeeper+kafka 集群的更多相关文章

  1. Docker搭建Zookeeper&Kafka集群

    最近在学习Kafka,准备测试集群状态的时候感觉无论是开三台虚拟机或者在一台虚拟机开辟三个不同的端口号都太麻烦了(嗯..主要是懒). 环境准备 一台可以上网且有CentOS7虚拟机的电脑 为什么使用虚 ...

  2. 在kubernetes上部署zookeeper,kafka集群

    本文采用网上镜像:mirrorgooglecontainers/kubernetes-zookeeper:1.0-3.4.10 准备共享存储:nfs,glusterfs,seaweed或其他,并在no ...

  3. Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战

    Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...

  4. Zookeeper+Kafka集群部署(转)

    Zookeeper+Kafka集群部署 主机规划: 10.200.3.85  Kafka+ZooKeeper 10.200.3.86  Kafka+ZooKeeper 10.200.3.87  Kaf ...

  5. Zookeeper+Kafka集群部署

    Zookeeper+Kafka集群部署 主机规划: 10.200.3.85  Kafka+ZooKeeper 10.200.3.86  Kafka+ZooKeeper 10.200.3.87  Kaf ...

  6. zookeeper+kafka集群安装之二

    zookeeper+kafka集群安装之二 此为上一篇文章的续篇, kafka安装需要依赖zookeeper, 本文与上一篇文章都是真正分布式安装配置, 可以直接用于生产环境. zookeeper安装 ...

  7. 搭建zookeeper+kafka集群

      搭建zookeeper+kafka集群 一.环境及准备 集群环境:   软件版本: 部署前操作: 关闭防火墙,关闭selinux(生产环境按需关闭或打开) 同步服务器时间,选择公网ntpd服务器或 ...

  8. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  9. zookeeper+kafka集群安装之一

    zookeeper+kafka集群安装之一 准备3台虚拟机, 系统是RHEL64服务版. 1) 每台机器配置如下: $ cat /etc/hosts ... # zookeeper hostnames ...

随机推荐

  1. Linux centos修改防火墙为iptables

    防火墙配置 CentOS 7默认使用的是firewall作为防火墙,这里改为iptables防火墙.  firewall操作: # service firewalld status; #查看防火墙状态 ...

  2. Mac app打包成dmg

    1. 找到打包的app文件,在Xcode工程的Products目录下 2. 在桌面新建一个文件夹dmg,将app文件放进去. 3. 为了实现拖拽到Application的效果,需要在这个文件夹里放一个 ...

  3. 模糊控制——(3)模糊自适应整定PID控制

    1.原理 这种控制必须精确地确定对象模型,首先将操作人员(专家)长期实践积累的经验知识用控制规则模型化,然后运用推理便可对PID参数实现最佳调整. 自适应模糊PID控制器以误差e和误差变化ec作为输入 ...

  4. PAT乙级1027

    1027 打印沙漏 (20 分)   本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输 ...

  5. python redis 的基本操作指令

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' redis基本命令和基本用法详解 1.redis连接 2.redis连接池 3.redis基本命令 ...

  6. ZOJ 3981 && 2017CCPC秦皇岛 A:Balloon Robot(思维题)

    A - Balloon Robot Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Sub ...

  7. iOS使用NSMutableAttributedString实现富文本小结

    NSAttributedString NSAttributedString对象管理适用于字符串中单个字符或字符范围的字符串和关联的属性集(例如字体和字距).NSAttributedString对象的默 ...

  8. Linux基础命令之文件过滤及内容编辑处理(一)

    . cat 功能是连接多个文件并且打印到屏幕输出,或重定向到指定的文件 五大功能: 1.查看文件内容 cat file.txt 2.合并文件内容 cat file1 file2>newfile3 ...

  9. Django:表单字段如何在模板中用中文显示

    在处理中文显示的时候,刚开始接触django时,很容易弄混表单汉化和Admin后台汉化. 1.表单汉化:是针对用户的.用户浏览网页时,表单的名称如果是英文的,不够友好,所以需要显示为中文,虽然代码编写 ...

  10. Scala 方法和函数

    package com.bigdata // /** Scala 方法和函数:Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别. * * 方法:Scala 中的方法跟 Jav ...