赞
踩
最近项目需要使用kafka对接第三方接口,但是对方没有调试环境,索性就自己先搭建一个简单的kafka服务器。
搭建具体要求如下:
根据以上要求,在搭建之前,需要准备如下工作,准备工作和本篇搭建kafka关系不大,就不进行详细介绍了,需要了解的小伙伴可以单独按照下面的工作百度,一搜一大堆教程,主要就是第一步需要装一下。
docker load -i centos.7.61810.tar
docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init
以上准备工作做完,就可以开始我们的主菜了,在centos下搭建kafka服务。
kafka也是需要基于java的,所以需要在centos上安装java环境,我下载的是java8,在官网下载,需要登录,这个自己下载吧,下载x64的,下载之后传到docker里,我放在了/opt目录下。
解压命令:
tar -zxvf jdk-8u341-linux-x64.tar.gz
编辑/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
文件如下,画框的为添加的:
执行如下指令,使刚才添加的配置生效:
source /etc/profile
这时候执行:
java -version
看一下返回java的版本号,就是成功了。
在kafka官方下载kafka,我这里下载的是3.4.0,可以根据需要自行下载:下载地址
选择3.4.0版本点击进入,下载kafka_2.13-3.4.0.tgz 这个文件。
将上一步下载的kafka压缩包上传到docker,并解压,这里我也上传到了/opt目录下,解压命令如下:
tar -zxvf kafka_2.13-3.4.0.tgz
解压之后,会生成同名文件夹,进入这个文件夹执行如下命令:
bin/zookeeper-server-start.sh config/zookeeper.properties &
之后会有一堆log打印,看到最后打印出success就说明成功了,如下图:
这块也可以用如下命令看是否成功:
jps
看到红框这个进程,就说明zookeeper启动成功了。
我在启动的时候报错,错误为:Zookeeper audit is disabled
这个是zookeeper新增的审核日志是默认关闭的,所以出现这种情况。我们给打开就行,打开方法是修改配置文件:
/opt/kafka_2.13-3.4.0/config,修改zookeeper.properties,添加下面一行:
audit.enable=true
添加之后再启动,就不报错了。
启动kafka之前,需要先修改kafka的配置文件,将hostname修改为宿主机的IP,修改:/opt/kafka_2.13-3.4.0/config,修改server.properties:
修改之后,启动kafka:注意,这块启动的时候要等上面zookeeper启动一会之后再启动,因为kafka启动需要连接zookeeper,这里启动太快了,zookeeper那还没准备完,kafka就启动失败了。
bin/kafka-server-start.sh config/server.properties &
使用3.2的方法查看启动是否成功,如下两个进程,就说明成功了。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
执行之后在命令行里输入测试消息:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
执行之后,收到了刚才发的消息:
使用如下指令打包docker镜像:
docker export -o kafka-server-3.4.0.tar 【容器ID】
上面已经把kafka镜像创建完成,这里就需要加载镜像启动了。
使用如下命令加载镜像:
cat 【加载的镜像名称】 | sudo docker import - 【新创建的镜像的名称】
具体命令如下:
cat kafka-server-3.4.0.tar | sudo docker import - kafka-server-3.4.0
加载成功使用如下命令查看:
docker images
这里需要记住后面的IMAGE ID,之后创建容器的时候会用到。
使用如下命令创建容器,将下面命令的【镜像ID】换成刚才创建的镜像的ID:
docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init
使用如下指令查看创建容器是否成功:
docker -ps -a
这里需要记住CONTAINER ID,之后会用到。
由于容器中没有配置自启动,需要进入容器进行一些操作,进入容器指令如下,将【容器进程ID】换成上一步创建容器的CONTAINER ID:
docker exec -it 【容器进程ID】 /bin/bash
进入容器之后,依次执行:
注意第三条执行完,还是要去改一下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 &
使用jps指令查看,如果和4.2写的一样,有那两个进程,就说明kafka已经启动成功了。
至此,kafka的docker就部署完了,使用代码接收kafka消息就比较简单了,可以自行百度一下,之后有时间我也会写一篇springboot集成kafka的文章。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。