Docker下的Kafka学习之二:搭建集群环境
来源:互联网 发布:java求质数的算法 编辑:程序博客网 时间:2024/05/21 22:57
Docker软件版本
本次实战的电脑操作系统是Win10专业版,安装的Docker版本信息如下:
ssh工具
为了登录容器方便,建议使用SecureCRT;
环境规划
本次实战要搭建六个容器,使用同一个镜像,容器们的功能如下:
1. kafka集群:三个broker,分别是borker1、broker2、broker3;
2. 消息生产者:一个;
3. 消息消费者:两个;
docker-compose.yml文件
使用docker-compose可以使多个容器的管理更简单方便,按照上面所划分功能配置出的docker-compose.yml文件内容如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
如上所示,所有容器的22端口都映射到当前电脑的不同端口,方便使用ssh工具登录,另外消息生产者和消费者都配置了link参数,避免在连接kafka集群的时候直接输入ip;
启动所有容器
在docker-compose.yml所在文件夹下执行以下命令:
- 1
会依次启动上述的六个容器,如下图:
管理每台机器的登录和连接
由于每个容器都支持ssh登录,所以我们可以用SecureCRT来管理登录,创建六个ssh连接,host都是127.0.0.1,端口依次是19011到19016,如下图:
例如broker1的配置如下:
这样后面我们的连接登录操作就方便了很多。
配置hosts
分别登录broker1、broker2、broker3,用ip addr查看他们的IP分别是:172.18.0.2、172.18.0.3、172.18.0.4,于是将这三个容器的/etc/hosts文件都添加以下三行:
- 1
- 2
- 3
配置zookeeper
- 分别登录broker1、broker2、broker3,打开它们的/usr/local/work/zookeeper-3.4.6/conf/zoo.cfg文件,在最下面添加以下内容:
- 1
- 2
- 3
这样就指定了zookeeper集群的机器;
2. 配置每个zookeeper的身份:
在broker1执行以下命令:
- 1
在broker2执行以下命令:
- 1
在broker3执行以下命令:
- 1
启动zookeeper
在broker1、broker2、broker3上依次执行以下命令将所有zookeeper启动:
- 1
启动后,可以用以下命令查看当前机器的zookeeper状态:
- 1
如下图,broker2是leader:
至此,zookeeper集群启动成功;
配置kafka
在broker1上,打开文件/usr/local/work/kafka_2.9.2-0.8.1/config/server.properties,修改以下两处:
1. 找到下图红框位置:
将原来的broker.id=0改为broker.id=1,这里的”1”是和myid文件的内容一致;
对broker2、broker3也做相同的操作,broker.id分别是2和3;
2. 找到下图红框位置:
将上图红框中的内容改成以下内容:
- 1
对broker2、broker3、producer也做相同的操作;
启动kafka集群
在broker1、broker2、broker3上面依次执行以下命令,即可启动kafka集群:
- 1
验证消息服务
- 在broker1上执行以下命令,在broker1上创建一个topic:
- 1
以上命令创建了一个名为”test001”的主题,有三个partition;
2. 在broker2上执行以下命令,查看当前topic列表:
- 1
可以看到topic列表如下:
如上图,刚刚在broker1上创建的主题test001可以看到;
3. 在broker1的/tmp/kafka-logs/目录下,可以看到新建的topic的partition文件夹,如下图:
如上图,有个test001-2的目录,表明这是存放2号partition内容的地方,进入该文件夹,可以看到index和log文件;
登录broker2和broker3可以分别看到test001-0和test001-1文件夹;
4. 登录producer容器,执行以下命令,进入发送消息的模式:
- 1
如下图所示:
此时已经准备完毕,我们可以准备消息消费者了;
5. 依次登录consumer1、consumer2,都执行以下命令,即可进入接受消息的模式:
- 1
现在可以发送消息了;
6. 在producer容器上,现在是发送消息的模式,依次输入以下三个字符串,每输入一个就敲回车,这样相当于发送了三条消息,然后再去consumer1和consumer2上看一下,发现效果如下:
如上图,consumer1和consumer2一样,都是消息全部收到;
至此,Kafka集群环境的搭建和验证就完成了,后续章节我们通过java来完成集群环境下kafka消息的发送和接受;
- Docker下的Kafka学习之二:搭建集群环境
- Docker下的Kafka学习之二:搭建集群环境
- Docker下kafka学习,三部曲之二:本地环境搭建
- Docker下的Kafka学习之三:集群环境下的java开发
- Docker下HBase学习,三部曲之二:集群HBase搭建
- docker容器中搭建kafka集群环境
- Linux docker环境kafka集群搭建
- Kafka学习之:Centos 下Kafka集群的安装
- 【Linux】ubuntu下kafka集群环境搭建
- Docker学习文档之二 搭建环境-Windows环境
- Docker学习文档之二 搭建环境-Linux环境
- kafka集群环境搭建
- kafka集群环境搭建
- KAFKA集群环境搭建
- 搭建Kafka集群环境
- kafka集群环境搭建
- kafka集群环境搭建
- kafka集群环境搭建
- 移动端webApp 控件聚焦后去掉默认边框
- 使用百度webuploader实现大文件上传
- Ubuntu下OpenCV和QT的安装(图文并茂)
- 学习django
- HDU2586 How far away?(树链剖分求LCA)
- Docker下的Kafka学习之二:搭建集群环境
- 自学视频教程网站
- 为什么要创建索引
- 高质量程序设计指南C/C++阅读笔记
- iscroll的地址
- Zoj 3981 Balloon Robot【思维】
- 7zip解压tar.gz格式的压缩包
- Firefox浏览器的控制台打印对象如何展示该对象的全部属性?
- 程序编写规范