docker搭建kafka集群(高级版)
1. 环境docker, docker-compose
2.zookeeper集群
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# dataDir=/opt/zookeeper-3.4.13/data
dataDir=/data
dataLogDir=/datalog
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
autopurge.purgeInterval=1 server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
docker-compose-zookeeper.yml
version: '3.7'
services:
zoo1:
container_name: zoo1
hostname: zoo1
image: wurstmeister/zookeeper
privileged: true
restart: unless-stopped
ports:
- 2181:2181
volumes: # 挂载数据卷
- /data/zookeeper/zoo1/config/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /data/zookeeper/zoo1/data:/data
- /data/zookeeper/zoo1/datalog:/datalog
environment:
TZ: Asia/Shanghai
ZOO_MY_ID: 1 # 节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 # zookeeper节点列表 zoo2:
container_name: zoo2
hostname: zoo2
image: wurstmeister/zookeeper
privileged: true
restart: unless-stopped
ports:
- 2182:2181
volumes: # 挂载数据卷
- /data/zookeeper/zoo2/config/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /data/zookeeper/zoo2/data:/data
- /data/zookeeper/zoo2/datalog:/datalog
environment:
TZ: Asia/Shanghai
ZOO_MY_ID: 2 # 节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 # zookeeper节点列表 zoo3:
container_name: zoo3
hostname: zoo3
image: wurstmeister/zookeeper
privileged: true
restart: unless-stopped
ports:
- 2183:2181
volumes: # 挂载数据卷
- /data/zookeeper/zoo3/config/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /data/zookeeper/zoo3/data:/data
- /data/zookeeper/zoo3/datalog:/datalog
environment:
TZ: Asia/Shanghai
ZOO_MY_ID: 3 # 节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 # zookeeper节点列表
启动
docker-compose -f docker-compose-zookeeper.yml up -d
3.kafka集群
需要先创建虚拟机网络
docker network create -d bridge --subnet 172.19.0.0/24 kafka_net
docker-compose-kafka.yml
version: '3.2'
services:
broker1:
container_name: broker1
hostname: broker1
image: wurstmeister/kafka
privileged: true
restart: unless-stopped
ports:
- "9986:9986"
- "9091:9091"
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENERS: PLAINTEXT://:9091
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.12.163:9091
KAFKA_ADVERTISED_HOST_NAME: 172.16.12.163
KAFKA_ADVERTISED_PORT: 9091
KAFKA_ZOOKEEPER_CONNECT: 172.16.12.130:2181,172.16.12.130:2182,172.16.12.130:2183
JMX_PORT: 9986
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/kafka/broker1:/kafka/kafka-logs-broker2
networks:
default:
ipv4_address: 172.19.0.11 broker2:
container_name: broker2
hostname: broker2
image: wurstmeister/kafka
privileged: true
restart: unless-stopped
ports:
- "9987:9987"
- "9092:9092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.12.163:9092
KAFKA_ADVERTISED_HOST_NAME: 172.16.12.163
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: 172.16.12.130:2181,172.16.12.130:2182,172.16.12.130:2183
JMX_PORT: 9987
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/kafka/broker2:/kafka/kafka-logs-broker2
networks:
default:
ipv4_address: 172.19.0.12 broker3:
container_name: broker3
hostname: broker3
image: wurstmeister/kafka
privileged: true
restart: unless-stopped
ports:
- "9988:9988"
- "9093:9093"
environment:
KAFKA_BROKER_ID: 3
KAFKA_LISTENERS: PLAINTEXT://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.12.163:9093
KAFKA_ADVERTISED_HOST_NAME: 172.16.12.163
KAFKA_ADVERTISED_PORT: 9093
KAFKA_ZOOKEEPER_CONNECT: 172.16.12.130:2181,172.16.12.130:2182,172.16.12.130:2183
JMX_PORT: 9988
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/kafka/broker3:/kafka/kafk-logs-broker3
networks:
default:
ipv4_address: 172.19.0.13 kafka-manager:
image: sheepkiller/kafka-manager:latest
container_name: kafka-manager
hostname: kafka-manager
restart: unless-stopped
ports:
- 9000:9000
links: # 连接本compose文件创建的container
- broker1
- broker2
- broker3 environment:
ZK_HOSTS: 172.16.12.130:2181,172.16.12.130:2182,172.16.12.130:2183
KAFKA_BROKERS: broker1:9091,broker2:9092,broker3:9093
APPLICATION_SECRET: 123456
KM_ARGS: -Djava.net.preferIPv4Stack=true
networks:
default:
ipv4_address: 172.19.0.14 networks:
default:
external:
name: kafka_net
启动
docker-compose -f docker-compose-kafka.yml up -d
4. 遇到的问题:
在同一台集群上部署zookeeper集群和kafka集群,会报错:
/usr/bin/start-kafka.sh: line 149: /opt/kafka/bin/kafka-server-start.sh: No such file or direc
原因:可能是因为端口冲突导致docker容器没启动,然后报错。认真检查端口吧!
docker搭建kafka集群(高级版)的更多相关文章
- docker 搭建kafka集群(入门版)
1.环境 docker, docker-compose 2.zk-kafka.yml version: '3' services: zoo1: image: zookeeper:3.4.14 rest ...
- docker 搭建zookeeper集群和kafka集群
docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...
- 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)
上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- docker部署kafka集群
利用docker可以很方便的在一台机子上搭建kafka集群并进行测试.为了简化配置流程,采用docker-compose进行进行搭建. kafka搭建过程如下: 编写docker-compose.ym ...
- docker-compose 搭建kafka集群
docker-compose搭建kafka集群 下载镜像 1.wurstmeister/zookeeper 2.wurstmeister/kafka 3.sheepkiller/kafka-manag ...
- 大数据平台搭建-kafka集群的搭建
本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...
- Docker 搭建 etcd 集群
阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...
- Docker搭建PXC集群
如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...
随机推荐
- 解决MyEclipse一直在Updating indexes的文题
Updating indexes是Maven在下载更新,这个需要手动去设置即可: Window --> Preferences --> Maven4MyEclipse --> 去除 ...
- nmon工具安装及nmon analyser的使用
步骤一:下载nmon及nmon analyser工具 nmon:http://nmon.sourceforge.net/pmwiki.php 根据自己系统的版本下载相应的版本即可 nmon analy ...
- 打开设置windows10内置linux功能-启用linux子系统
第一步设置开发者模式 步骤:windows+s打开娜娜,输入设置,并点击. 点击更新与安全 点击开发者选项,选择开发者模型,弹出的对话框选确定之后等待安装完毕. 第二步:安装linux 点击确定后等待 ...
- STM32笔记二
1.STM32编程通常有两种方法:一种是寄存器编程,另外一种是固件库编程.寄存器编程是基础,而固件库是寄存器编程的基础上升级而来的编程方法,是需要重点掌握的编程方法. 2.STM32F103采用的是C ...
- flex布局制作自适应网页
网页布局是css的一个重点应用.传统的布局都是依赖display.position.float属性来实现的,但是特殊布局就不易实现,如垂直居中. 01 flex布局是什么? Flex 是 Flexi ...
- [刘阳Java]_eayui-searchbox搜索组件_第6讲
EasyUI中搜索框也是常用的基本组件,可以用到条件搜索中 <!DOCTYPE html> <html> <head> <meta charset=" ...
- ubuntu平台下,字符集的转换命令iconv
iconv命令格式 iconv -f 源字符集(要转换文件的字符集) -t 目标字符集 file iconv -f gb18030 -t utf-8 file 默认情况下,不改变原文件,输出到屏幕. ...
- kubernetes/k8s CSI分析-容器存储接口分析
更多 k8s CSI 的分析,可以查看这篇博客kubernetes ceph-csi分析,以 ceph-csi 为例,做了详细的源码分析. 概述 kubernetes的设计初衷是支持可插拔架构,从而利 ...
- 【Lucas组合数定理】组合-FZU 2020
组合 FZU-2020 题目描述 给出组合数C(n,m), 表示从n个元素中选出m个元素的方案数.例如C(5,2) = 10, C(4,2) = 6.可是当n,m比较大的时候,C(n,m)很大!于是x ...
- 第二篇 -- SpringBoot入门Helloworld
之前讲Jmeter接口的时候讲过社区版怎么创建web接口,那么现在用企业版创建一个Springboot项目.企业版自带Springboot,新建起来更加简单. 第一步:新建一个项目 第二步:选择Spr ...