docker搭建kafka、搭建集群zookeeper

前提:
centos7.2
因为已经在本地安装了zookeeper,端口号为2181
这里为了演示就用docker再次安装zookeeper

1、使用docker安装zookeeper

1)、查找zookeeper镜像

docker search zookeeper
在这里插入图片描述

2)、拉取zookeeper镜像

docker pull docker.io/zookeeper
查看镜像
docker images
在这里插入图片描述

3)、运行zookeeper镜像
(1)简单启动zookeeper

docker run --privileged -p 2182:2181 -p 2887:2888 -p 3887:3888 --name zookeeper --restart always -d docker.io/zookeeper

(2)搭建zookeeper集群

master节点
docker run --privileged -p 2181:2181 -p 2888:2888 -p 3888:3888 -e ZOO_MY_ID=1 -e ZOO_SERVERS="server.1=0.0.0.0:2888:3888 server.2=slave1:2886:3886 server.3=slave2:2887:3887" --name zookeeper --restart always -d docker.io/zookeeper
slave1节点
docker run --privileged -p 2182:2181 -p 2886:2888 -p 3886:3888 -e ZOO_MY_ID=2 -e ZOO_SERVERS="server.1=master:2888:3888 server.2=0.0.0.0:2888:3888 server.3=slave2:2887:3887" --name zookeeper --restart always -d docker.io/zookeeper
slave2节点
docker run --privileged -p 2183:2181 -p 2887:2888 -p 3887:3888 -e ZOO_MY_ID=3 -e ZOO_SERVERS="server.1=master:2888:3888 server.2=slave1:2886:3886 server.3=0.0.0.0:2888:3888" --name zookeeper --restart always -d docker.io/zookeeper

参数说明:

–privileged : 获取容器权限
-d:在后台运行
-e ZOO_MY_ID: ZK 服务的 id, 它是1-255 之间的整数, 必须在集群中唯一
-e ZOO_SERVERS: 是ZK 集群的主机列表(server后面的1就是ZOO_MY_ID的数值)
对于集群-e ZOO_SERVERS=“server.1=0.0.0.0:2886:3886 server.2=ip:2887:3887 server.3=ip:2888:3888”

注明:

0.0.0.0在服务器中指的是本机上的所有IPV4地址,如果监听本机的0.0.0.0上的端口,就等于监听机器上的所有ip端口,比如一台服务器,一个外网地址 A,一个内网地址 B,假如绑定的端口 0.0.0.0,那么通过内网地址或外网地址都可以访问应用(127.0.0.1代本地环回地址,主机IP堆栈内部的IP地址,只能由本机访问)

2、使用docker安装kafka节点

1)、查找kafka镜像

docker search kafka
docker搭建kafka、搭建集群zookeeper_第1张图片

2)、下载kafka镜像

我们选择apache的kafka镜像
docker pull docker.io/wurstmeister/kafka
docker搭建kafka、搭建集群zookeeper_第2张图片
查看镜像
docker images
docker搭建kafka、搭建集群zookeeper_第3张图片

3)、启动kafka节点

kafka 0.9.x以后的版本新增了advertised.listeners配置,不在使用 advertised.host.nameadvertised.host.port
此kafka容器不兼容zookeeper3.4版本,只兼容3.3,如果使用3.4,kafka容器启动之后过一会就会挂掉

docker run --privileged -d --name kafka -p 9092:9092  
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper的ip:zookeeper的端口号
 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://ip:9092
 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
 -e KAFKA_CREATE_TOPICS="topic001:1:1"
 -e KAFKA_HEAP_OPTS="-Xmx128M -Xms64M"  
 docker.io/wurstmeister/kafka

参数说明:
KAFKA_ADVERTISED_HOST_NAME:kafka宿主机的ip地址,是注册到zookeeper,client要访问的broker地址,不能设为0.0.0.0 (kafka 0.9.x以后的版本不要使用 advertised.host.name 和 advertised.host.por)
KAFKA_ZOOKEEPER_CONNECT:配置zookeeper的ip:zookeeper的端口号
KAFKA_ADVERTISED_LISTENERS:是暴露给外部的listeners,如果没有设置,会用listeners
KAFKA_LISTENERS:当Kafka broker启动时,它会在ZK上注册自己的IP和端口号,客户端就通过这个IP和端口号来连接(设了这个参数值就不用advertised.host.name 和 host.name)
PLAINTEXT:表示协议,可选的值有PLAINTEXT和SSL
KAFKA_CREATE_TOPICS:表示容器启动时会创建名为"topic001"的主题,并且partition等于1,副本为1

查看容器启动
docker ps -s
在这里插入图片描述

3、使用docker安装kafka管理节点(kafka-manager)

kafka-manager作用:

管理多个集群
轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
运行首选副本选举
使用选项生成分区分配以选择要使用的代理
运行分区重新分配
使用可选主题配置创建主题
删除主题
主题列表现在指示标记为删除的主题
批量生成多个主题的分区分配,并可选择要使用的代理
批量运行重新分配多个主题的分区
将分区添加到现有主题

1)、查找kafka-manager镜像

docker search kafka-manager
在这里插入图片描述

2)、拉取kafka-manager镜像

docker pull docker.io/sheepkiller/kafka-manager
查看镜像
docker images
docker搭建kafka、搭建集群zookeeper_第4张图片

3)、启动kafka-manager节点

docker run -d --privileged --name kafka-manager -p 9000:9000 -e ZK_HOSTS="zookeeper地址:2181" docker.io/sheepkiller/kafka-manager

3)、登陆ip:9001

添加集群标识
docker搭建kafka、搭建集群zookeeper_第5张图片
docker搭建kafka、搭建集群zookeeper_第6张图片
下面就可以操作了

你可能感兴趣的:(docker,kafka,zookeeper)