网上关于kafka集群的搭建,基本是单个broker和单个zookeeper,测试研究的意义不大。于是折腾了下,终于把正宗的Kafka集群搭建出来了,在折腾中遇到了很多坑,后续有时间再专门整理份搭建问题分析

docker-compose.yml配置文件

  1. version: '2'
  2. services:
  3. zoo1:
  4. image: zookeeper
  5. restart: always
  6. container_name: zoo1
  7. ports:
  8. - "2181:2181"
  9. environment:
  10. ZOO_MY_ID: 1
  11. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:3888:observer
  12. zoo2:
  13. image: zookeeper
  14. restart: always
  15. container_name: zoo2
  16. ports:
  17. - "2182:2181"
  18. environment:
  19. ZOO_MY_ID: 2
  20. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:3888:observer
  21. zoo3:
  22. image: zookeeper
  23. restart: always
  24. container_name: zoo3
  25. ports:
  26. - "2183:2181"
  27. environment:
  28. ZOO_MY_ID: 3
  29. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:3888:observer
  30. zoo4:
  31. image: zookeeper
  32. restart: always
  33. container_name: zoo4
  34. ports:
  35. - "2184:2181"
  36. environment:
  37. ZOO_MY_ID: 4
  38. PEER_TYPE: observer
  39. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 server.4=zoo4:2888:388:observer
  40. broker1:
  41. image: wurstmeister/kafka
  42. restart: always
  43. container_name: broker1
  44. ports:
  45. - "9091:9092"
  46. depends_on:
  47. - zoo1
  48. - zoo2
  49. - zoo3
  50. - zoo4
  51. environment:
  52. KAFKA_BROKER_ID: 1
  53. KAFKA_ADVERTISED_HOST_NAME: broker1
  54. KAFKA_ADVERTISED_PORT: 9092
  55. KAFKA_HOST_NAME: broker1
  56. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181,zoo4:2181
  57. KAFKA_LISTENERS: PLAINTEXT://broker1:9092
  58. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker1:9092
  59. volumes:
  60. - /var/run/docker.sock:/var/run/docker.sock
  61. broker2:
  62. image: wurstmeister/kafka
  63. restart: always
  64. container_name: broker2
  65. ports:
  66. - "9092:9092"
  67. depends_on:
  68. - zoo1
  69. - zoo2
  70. - zoo3
  71. - zoo4
  72. environment:
  73. KAFKA_BROKER_ID: 2
  74. KAFKA_ADVERTISED_HOST_NAME: broker2
  75. KAFKA_ADVERTISED_PORT: 9092
  76. KAFKA_HOST_NAME: broker2
  77. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181,zoo4:2181
  78. KAFKA_LISTENERS: PLAINTEXT://broker2:9092
  79. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker2:9092
  80. volumes:
  81. - /var/run/docker.sock:/var/run/docker.sock
  82. broker3:
  83. image: wurstmeister/kafka
  84. restart: always
  85. container_name: broker3
  86. ports:
  87. - "9093:9092"
  88. depends_on:
  89. - zoo1
  90. - zoo2
  91. - zoo3
  92. - zoo4
  93. environment:
  94. KAFKA_BROKER_ID: 3
  95. KAFKA_ADVERTISED_HOST_NAME: broker3
  96. KAFKA_ADVERTISED_PORT: 9092
  97. KAFKA_HOST_NAME: broker3
  98. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181,zoo4:2181
  99. KAFKA_LISTENERS: PLAINTEXT://broker3:9092
  100. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker3:9092
  101. volumes:
  102. - /var/run/docker.sock:/var/run/docker.sock

启动集群

  1. COMPOSE_PROJECT_NAME=kafkatest docker-compose -f kafka.yml up -d

查看容器启动状态

  1. COMPOSE_PROJECT_NAME=kafkatest docker-compose -f kafka.yml ps

如果要在其他容器里直接使用kafka容器,可以将它们加入同一个network

创建network

  1. docker network create nginx-proxy

在各自容器的docker-compose.yml加入network配置,如下

  1. networks:
  2. default:
  3. external:
  4. name: nginx-proxy

docker下部署kafka集群(多个broker+多个zookeeper)的更多相关文章

  1. kafka 集群--3个broker 3个zookeeper创建实战

    准备工作: 1. 准备3台机器,IP地址分别为:192.168.0.10,192.168.0.11,192.168.0.12 2. 下载kafka稳定版本,我的版本为:kafka_2.9.2-0.8. ...

  2. Docker 下部署hadoop集群

    一.主机规划 3台主机:1个master.2个slaver/worker ip地址使用docker默认的分配地址: master: 主机名: hadoop2.ip地址: 172.17.0.2 slav ...

  3. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  4. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  5. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  6. Docker安装部署es集群

    Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...

  7. 假如Kafka集群中一个broker宕机无法恢复,应该如何处理?

    假如Kafka集群中一个broker宕机无法恢复, 应该如何处理? 今天面试时遇到这个问题, 网上资料说添加新的broker, 是不会自动同步旧数据的. 笨办法 环境介绍 三个broker的集群, z ...

  8. docker部署kafka集群

    利用docker可以很方便的在一台机子上搭建kafka集群并进行测试.为了简化配置流程,采用docker-compose进行进行搭建. kafka搭建过程如下: 编写docker-compose.ym ...

  9. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

随机推荐

  1. 【leetcode】1207. Unique Number of Occurrences

    题目如下: Given an array of integers arr, write a function that returns true if and only if the number o ...

  2. Vue组件创建和组件传值

    Vue创建组件的方式 使用Vue.Extend()和Vue.component全局注册组件 首先我们定义一个组件并接收 var com1 =Vue.extend({ template:"&l ...

  3. DOM操作元素

    DOM 操作元素 JavaScript的DOM操作可以改变网页内容.结构和样式.我们可以利用DOM操作元素来改变元素里面的内容.属性等. DOM操作元素: 一.操作元素:(一)innerText .( ...

  4. HTML5测试(二)

    HTML5测试(四) 1.input 元素中,下列哪个类型属性定义了输入电话号码的控件? A.mob B.tel C.mobile D.telephone 答案:B 具有 type 属性的 input ...

  5. 以Emacs Org mode为核心的任务管理方案

    前言 如今用于任务管理的方法与工具越来越多,如纸笔系统.日历与任务列表.Emacs Org mode系统,以及移动设备上的诸多应用.这些解决方案各具特色,在一定程度上能够形成互补作用.但是,它们彼此之 ...

  6. CDOJ 1073 线段树 单点更新+区间查询 水题

    H - 秋实大哥与线段树 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit S ...

  7. java-String与Integer的相互转化

    一.Integer转String //方法一:Integer类的静态方法toString() Integer a = 2; String str = Integer.toString(a)   //方 ...

  8. 微信小程序 API 界面(1)

    界面 有关屏幕的api 交互: wx.showToast() 显示消息提示框 参数:object object的属性: title:类型 字符串 提示的内容(文本最多7个汉字) icon:类型 字符串 ...

  9. MyRocks安装部署

    参考:https://www.cnblogs.com/WonderHow/p/5621591.html CentOS 7.3 gflags:git clone https://github.com/g ...

  10. 2018 icpc 徐州

    A 矩阵树定理可以用于最小生成树计数,最直观的做法就是求个mst,再用矩阵树定理求最小生成树个数,但是n<=1e5,显然不是o(n^3)可以做出来的. 考虑随机数据生成器,固定1e5的边,但是边 ...