springboot整合kafka单机版和伪集群

注意:springboot版本和kafka版本存在对应关系,
kafka的启动需要依赖zookeeper和jdk,请确认你的虚拟机是否安装了这些
springboot版本我选择的是2.1.12.RE
kafka的版本我选择2.12.1.0.0
zookeeper的版本是3.4.10
jdk的版本是8u241也就是jdk1.8.0_241
单机版的kafka我将用docker启动,
伪集群将在一台虚拟机上搭建并启动
示例代码和所有安装包可以从我的百度云里下载,给大家准备好了
本人亲自测试成功,所以为了避免大家走弯路,什么都给大家准备好了

链接:https://pan.baidu.com/s/16sLY3ss3x6IYvjccs0xT4Q
提取码:r7i9
在这里插入图片描述
第一步,将相关包下载下来,然后上传到虚拟机里opt目录下,先配置jdk环境变量,这里不再演示
第二步,配置zookeep集群
将zookeeper安装包解压,进入配置文件目录然后执行cp命令,将示例配置文件复制三份,
在这里插入图片描述
分别修改配置文件的日志存放目录和启动程序id和端口号
注意:ip是自己虚拟机的ip,博主的是这个
如下
zoo1.cfg
在这里插入图片描述
zoo2.cfg
在这里插入图片描述
zoo3.cfg
在这里插入图片描述
配置文件修改后还需要做一件事情,就是在相应的目录下

dataDir=/usr/local/zookeeper/data/data1
dataDir=/usr/local/zookeeper/data/data2
dataDir=/usr/local/zookeeper/data/data3

创建myid文件,
文件内容分别是1,2,3
在这里插入图片描述
在这里插入图片描述
后面那两个文件不要管,是启动后自动生成的,如果没这个目录需要手动创建一下,再创建myid文件

这些准备就绪我们到zookeeper目录下就可以启动zookeeper集群了
分别执行下面的命令

bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg

启动完成后可以查看节点的状态,是一主两从

bin/zkServer.sh status conf/zoo1.cfg
bin/zkServer.sh status conf/zoo2.cfg
bin/zkServer.sh status conf/zoo3.cfg

在这里插入图片描述

然后开始配置kafka
首先解压,然后进入kafka配置文件目录将配置文件复制三份
在这里插入图片描述

分别修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
borkerid分别是1,2,3
端口分别是9092,9093,9094
对应的监听端口和建议端口也要对应上
日志目录分别是加个序号就行,kafka-logs1,kafka-logs2,kafka-logs3
zookeeper的连接地址是一样的

修改完就可以进入kafka的目录下执行启动命令了

bin/kafka-server-start.sh config/server-1.properties
bin/kafka-server-start.sh config/server-2.properties
bin/kafka-server-start.sh config/server-3.properties

在这里插入图片描述
博主的三个都启动成功了

查看启动中是否报错
如果出现错误,请认真看博文开始的部分,并检查自己的配置

启动完成后,就可以使用kafka的客户端连接,看能否连接成功

然后我们可以执行send项目的测试类,发送消息,启动consumer项目去监听topic,看是否有消息打印,也可以去客户端查看topic对应的消息

发送成功
在这里插入图片描述
监听成功
在这里插入图片描述
代码不展示了,都在百度云里,接下来改改连接kafka的配置就可以启动

关于单机版的,使用docker pull命令,把kafka和zookeeper的镜像拉取下来,然后执行下面的指令就可以,代码可以复用,改下连接配置就行
如果没有docker
使用yum install docker
然后启动docker服务
在拉取镜像
或者集群的配置,只启动一个就行

docker run -d --name zookeeper -p 2181:2181  容器id
docker run  -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \ 
-e KAFKA_ZOOKEEPER_CONNECT=本机ip:2181 \ 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://本机ip:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 容器id
发布了21 篇原创文章 · 获赞 1 · 访问量 371

猜你喜欢

转载自blog.csdn.net/qq_44909430/article/details/104530651