一、环境准备
-
kafka3.7.1 包下载地址: https://mirrors.nju.edu.cn/apache/kafka/3.7.1/kafka_2.13-3.7.1.tgz
-
openjdk11.0.2 下载地址: https://mirrors.nju.edu.cn/openjdk/11.0.2/openjdk-11.0.2_linux-x64_bin.tar.gz
二、openjdk 安装 【如已安装,跳过该步骤】
#创建openjdk 工作目录
mkdir -p /home/application
#下载软件包
wget https://mirrors.nju.edu.cn/openjdk/11.0.2/openjdk-11.0.2_linux-x64_bin.tar.gz
#解压至/home/application目录下
tar -xf openjdk-11.0.2_linux-x64_bin.tar.gz -C /home/application
#查看jdk
ls -l /home/application/jdk-11.0.2/
总用量 28
drwxr-xr-x 2 root root 4096 7月 3 2023 bin
drwxr-xr-x 4 root root 4096 7月 3 2023 conf
drwxr-xr-x 3 root root 4096 7月 3 2023 include
drwxr-xr-x 2 root root 4096 7月 3 2023 jmods
drwxr-xr-x 72 root root 4096 7月 3 2023 legal
drwxr-xr-x 6 root root 4096 7月 3 2023 lib
-rw-r--r-- 1 root root 1214 1月 18 2019 release
#配置全局的环境变量
【需要注意⚠️从 JDK 9 开始 OpenJDK 和 Oracle JDK 都不再单独提供 JRE(Java 运行时环境),就不需要指定jre的环境变量了】
vim /etc/profile
export JAVA_HOME=/home/application/jdk-11.0.2
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#使环境变量生效
souce /etc/profile
##验证java环境
[root@localhost ~]# java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
三、KRaft模式下启动Kafka
#创建kafka工作目录
mkdir -p /home/application
#下载软件包
wget https://mirrors.nju.edu.cn/apache/kafka/3.7.1/kafka_2.13-3.7.1.tgz
#解压软件包至/home/application
tar -xf kafka_2.13-3.7.1.tgz -C /home/application
#查看kafka3.7.1包下内容
ls -l /home/application/kafka_2.13-3.7.1
总用量 80
drwxr-xr-x 3 root root 4096 7月 18 15:05 bin
drwxr-xr-x 3 root root 4096 7月 18 14:57 config
drwxr-xr-x 3 root root 4096 7月 18 15:24 kraft-combined-logs
drwxr-xr-x 2 root root 12288 7月 18 14:56 libs
-rw-r--r-- 1 root root 15260 6月 19 05:27 LICENSE
drwxr-xr-x 2 root root 4096 6月 19 05:35 licenses
drwxr-xr-x 2 root root 4096 7月 18 15:06 logs
-rw-r--r-- 1 root root 28359 6月 19 05:27 NOTICE
drwxr-xr-x 2 root root 4096 6月 19 05:35 site-docs
#备份并修改config/kraft目录下的server.properties
cd /home/application/kafka_2.13-3.7.1/config/kraft
cp server.properties server.properties-bak
#修改配置文件,指定log.dirs 位置 和 advertised.listeners 监听地址【内网IP地址】
vim server.properties
.........
log.dirs=/home/application/kafka_2.13-3.7.1/kraft-combined-logs
advertised.listeners=PLAINTEXT://172.22.33.204:9092
#生成存储目录唯一ID
[root@localhost bin]# /home/application/kafka_2.13-3.7.1/bin/kafka-storage.sh random-uuid
PgJbkdolTTywNePn8TBr6g
#拿着得到的uuid,格式化存储目录
[root@localhost bin]# /home/application/kafka_2.13-3.7.1/bin/kafka-storage.sh format -t PgJbkdolTTywNePn8TBr6g -c /home/application/kafka_2.13-3.7.1/config/kraft/server.properties
#使用systemd配置kafka开机自启动
vim /etc/systemd/system/kafka.service
[Unit]
Description=kafka
Requires=network.target
After=network.target
[Service]
Environment="JAVA_HOME=/home/application/jdk-11.0.2"
ExecStart=/home/application/kafka_2.13-3.7.1/bin/kafka-server-start.sh /home/application/kafka_2.13-3.7.1/config/kraft/server.properties
ExecStop=/home/application/kafka_2.13-3.7.1/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
#systemd-reload,并添加开机自启动
chmod +x /etc/systemd/system/kafka.service
systemctl enable kafka
systemctl start kafka
systemctl status kafka
四、kafka测试发送和接收消息
创建一个主题:Kafka使用主题来组织消息。可以使用以下命令创建一个主题:
bin/kafka-topics.sh --create --topic my_topic_srebro.cn --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
发送消息:使用生产者客户端发送消息到Kafka主题。可以使用以下命令发送消息:
bin/kafka-console-producer.sh --topic my_topic_srebro.cn --bootstrap-server localhost:9092
接收消息:使用消费者客户端接收Kafka主题中的消息。可以使用以下命令接收消息:
bin/kafka-console-consumer.sh --topic my_topic_srebro.cn --bootstrap-server localhost:9092 --from-beginning
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟