当前位置:   article > 正文

使用centos搭建kafka服务器Docker

centos搭建kafka服务器

整体描述

最近项目需要使用kafka对接第三方接口,但是对方没有调试环境,索性就自己先搭建一个简单的kafka服务器。
搭建具体要求如下:

  1. 使用docker部署kafka服务
  2. 需要在纯净的centos基础上搭建,不要使用第三方已经做好的现成的docker,用第三方的虽然方便,但是安全性也不好说
  3. kafka使用最新版本,目前是3.4.0
  4. 由于是测试,没有做kafka集群,就是单一部署

前期准备

根据以上要求,在搭建之前,需要准备如下工作,准备工作和本篇搭建kafka关系不大,就不进行详细介绍了,需要了解的小伙伴可以单独按照下面的工作百度,一搜一大堆教程,主要就是第一步需要装一下。

  1. 由于是在本机搭建,windows系统需要安装docker,可以再安装一个docker desktop软件,操作和看着都方便
  2. 下载一个纯净版的centos,我这里用的是7.6.1810的,这个在阿里云官网就有,直接下载就行。 阿里云官方下载地址,进去之后选择centos,下载需要的版本即可。
  3. 导入centos镜像,导入命令如下:
docker load -i centos.7.61810.tar
  • 1
  1. 创建容器,这里我映射了两个端口,9092是kafka用的,2181是zookeeper的端口,zookeeper不知道用不用映射出来,我是都映射了。命令如下,其中【镜像ID】就是我们刚刚导入的cents的镜像的ID:
docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init
  • 1

以上准备工作做完,就可以开始我们的主菜了,在centos下搭建kafka服务。

具体步骤

1. 安装java环境

1.1. 下载java包

kafka也是需要基于java的,所以需要在centos上安装java环境,我下载的是java8,在官网下载,需要登录,这个自己下载吧,下载x64的,下载之后传到docker里,我放在了/opt目录下。

1.2. 解压java包

解压命令:

tar -zxvf jdk-8u341-linux-x64.tar.gz
  • 1

1.3. 配置环境变量

编辑/etc/profile文件,添加如下三行:

export JAVA_HOME=/opt/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 1
  • 2
  • 3

文件如下,画框的为添加的:
profile

1.4. 更新配置

执行如下指令,使刚才添加的配置生效:

source /etc/profile
  • 1

这时候执行:

java -version
  • 1

看一下返回java的版本号,就是成功了。

2. kafka文件

2.1. 下载kafka文件

在kafka官方下载kafka,我这里下载的是3.4.0,可以根据需要自行下载:下载地址
选择3.4.0版本点击进入,下载kafka_2.13-3.4.0.tgz 这个文件。

2.2. 上传kafka并解压

将上一步下载的kafka压缩包上传到docker,并解压,这里我也上传到了/opt目录下,解压命令如下:

tar -zxvf kafka_2.13-3.4.0.tgz
  • 1

3. 启动zookeeper

3.1. 启动zookeeper

解压之后,会生成同名文件夹,进入这个文件夹执行如下命令:

bin/zookeeper-server-start.sh config/zookeeper.properties &
  • 1

之后会有一堆log打印,看到最后打印出success就说明成功了,如下图:
zookeeper启动成功

3.2. 查看启动状态

这块也可以用如下命令看是否成功:

jps
  • 1

jps
看到红框这个进程,就说明zookeeper启动成功了。

3.3. 启动zookeeper报错

我在启动的时候报错,错误为:Zookeeper audit is disabled
这个是zookeeper新增的审核日志是默认关闭的,所以出现这种情况。我们给打开就行,打开方法是修改配置文件:
/opt/kafka_2.13-3.4.0/config,修改zookeeper.properties,添加下面一行:

audit.enable=true
  • 1

添加之后再启动,就不报错了。

4. 启动kafka

4.1. 修改配置文件

启动kafka之前,需要先修改kafka的配置文件,将hostname修改为宿主机的IP,修改:/opt/kafka_2.13-3.4.0/config,修改server.properties:
kafka

4.2. 启动kafka

修改之后,启动kafka:注意,这块启动的时候要等上面zookeeper启动一会之后再启动,因为kafka启动需要连接zookeeper,这里启动太快了,zookeeper那还没准备完,kafka就启动失败了。

bin/kafka-server-start.sh config/server.properties &
  • 1

使用3.2的方法查看启动是否成功,如下两个进程,就说明成功了。
kafka

5. 启动生产者Demo

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
  • 1

执行之后在命令行里输入测试消息:
producer

6. 启动消费者Demo

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
  • 1

执行之后,收到了刚才发的消息:
consumer

7. 打包docker

使用如下指令打包docker镜像:

docker export -o kafka-server-3.4.0.tar 【容器ID】
  • 1

8. 启动kafka

上面已经把kafka镜像创建完成,这里就需要加载镜像启动了。

8.1. 加载镜像

使用如下命令加载镜像:
cat 【加载的镜像名称】 | sudo docker import - 【新创建的镜像的名称】
具体命令如下:

cat kafka-server-3.4.0.tar | sudo docker import - kafka-server-3.4.0
  • 1

加载成功使用如下命令查看:

docker images
  • 1

查看镜像
这里需要记住后面的IMAGE ID,之后创建容器的时候会用到。

8.2. 创建容器

使用如下命令创建容器,将下面命令的【镜像ID】换成刚才创建的镜像的ID:

docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init
  • 1

使用如下指令查看创建容器是否成功:

docker -ps -a
  • 1

查看容器
这里需要记住CONTAINER ID,之后会用到。

8.3. 启动kafka

由于容器中没有配置自启动,需要进入容器进行一些操作,进入容器指令如下,将【容器进程ID】换成上一步创建容器的CONTAINER ID:

docker exec -it   【容器进程ID】   /bin/bash
  • 1

进入容器之后,依次执行:
注意第三条执行完,还是要去改一下kafka的配置文件,也就是本文的4.1写的,将IP改成宿主机的IP,然后再执行第四条指令。

source /etc/profile
cd /opt/kafka_2.13-3.4.0
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
  • 1
  • 2
  • 3
  • 4

使用jps指令查看,如果和4.2写的一样,有那两个进程,就说明kafka已经启动成功了。

总结

至此,kafka的docker就部署完了,使用代码接收kafka消息就比较简单了,可以自行百度一下,之后有时间我也会写一篇springboot集成kafka的文章。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/564908
推荐阅读
相关标签
  

闽ICP备14008679号