龙蜥 8.6 安装 Kafka 3.3.1 并通过 SpringBoot 3.0.1 版本调试
一.Kafka 安装
1.下载编译后的文件
下载编译后的包
2.拷贝到 Anolis 并解压
Kafka 依赖的 Jdk 环境自行配置
采用 Raft 配置启动 ,修改配置,自定义路径:vim config/kraft/server.properties
3.启动服务
生成UUID:./bin/kafka-storage.sh random-uuid
格式化数据目录:./bin/kafka-storage.sh format -t 3Nke4nZhRueBQrNeJVMrgw -c ./config/kraft/server.properties
启动服务:./bin/kafka-server-start.sh ./config/kraft/server.properties(末尾加上 & 即以进程形式启动)
进程形式启动(测试用进程日志输出到空):./bin/kafka-server-start.sh ./config/kraft/server.properties >/dev/null &
脚本语句
#!/bin/bash
KAFKA_HOME=/home/kafka_2.13-3.3.1
## 1.生成UUID
UUID=`${
KAFKA_HOME}/bin/kafka-storage.sh random-uuid`
## 2.格式化
${
KAFKA_HOME}/bin/kafka-storage.sh format -t ${
UUID} -c ${
KAFKA_HOME}/config/kraft/server.properties
Kafka 启动/停止脚本,创建脚本文件,贴入以下代码:vim /usr/local/bin/kafkaserver.sh
添加可执行权限:chmod a+x /usr/local/bin/kafkaserver.sh
#!/bin/bash
KAFKA_HOME=/home/kafka_2.13-3.3.1
case $1 in
"start")
${
KAFKA_HOME}/bin/kafka-server-start.sh ${
KAFKA_HOME}/config/kraft/server.properties >/dev/null &
;;
"stop")
${
KAFKA_HOME}/bin/kafka-server-stop.sh >/dev/null
;;
*)
echo "Please input start|stop"
;;
esac
sleep 1
pid=`jps | grep Kafka | grep -v grep`
if [ -n "$pid" ]
then
echo -e "\033[32m Kafka is running \033[0m"
else
echo -e "\033[31m Kafka is stopped \033[0m"
fi
3.常用命令
1.Topic 增查删
## 1.创建Topic
./bin/kafka-topics.sh --create --topic kafka-test-topic --bootstrap-server 127.0.0.1:9092
## 2.查看
./bin/kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092
## 3.删除
./bin/kafka-topics.sh --delete --topic kafka-test-topic-ver --bootstrap-server 127.0.0.1:9092
2.生产消费测试
## 1.生产压测
./bin/kafka-producer-perf-test.sh --topic kafka-test-topic --throughput 1 --num-records 1 --record-size 1024 --producer-props bootstrap.servers=127.0.0.1:9092
## 2.查看消息
./bin/kafka-topics.sh --describe --topic kafka-test-topic --bootstrap-server 127.0.0.1:9092
## 3.消费消息
./bin/kafka-console-consumer.sh --topic kafka-test-topic --from-beginning --bootstrap-server 127.0.0.1:9092
二.SpringBoot 连接 Kafka
1.项目结构、依赖、配置文件和启动类
项目结构
maven 依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>Kafka3</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>19</maven.compiler.source>
<maven.compiler.target>19</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.spring>3.0.1</version.spring>
<version.fastjson>2.0.22</version.fastjson>
<version.lombok>1.18.24</version.lombok>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${version.spring}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>${version.spring}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version