1. 下载安装包
上传到 linux 服务器的 /opt/software 目录下
ps:/opt/software 是笔者选的放置安装包的位置,该位置可以根据习惯任意变更
2. 解压安装
2.1. 解压,并重命名文件夹
ps:/opt/module/ 是笔者选的软件安装的位置,该位置可以根据习惯任意变更
# 解压文件到指定目录
tar -zxvf kafka_2.12-3.4.0.tgz -C /opt/module/
# 修改目录名称
cd /opt/module
mv kafka_2.12-3.4.0 kafka2.12_3.4.0
2.2. 修改环境变量
# 打开或者创建一个环境变量
vim /etc/profile.d/my_env.sh
# 添加以下环境变量
export KAFKA_HOME=/opt/module/kafka2.12_3.4.0
export PATH=$PATH:$KAFKA_HOME/bin
# 让环境变量起作用,【客户端也可以通过重连使其生效】
source /etc/profile.d/my_env.sh
2.3. 修改配置文件
这里采用 kraft 模式,相关配置文件地址:/opt/module/kafka2.12_3.4.0/config/kraft/server.properties
变更修改以下内容
# 此服务器的角色,多个用 逗号 隔开
# 设置这个值将使我们处于 KRaft 模式
process.roles=broker,controller
# 与此实例的角色关联的节点id,集群部署时保持全局唯一
node.id=1
# controller 角色选举的套接字,集群部署时用 逗号 隔开
# 每个套接字的开头和 node.id 保持一致
controller.quorum.voters=1@mitchell-101:9093
# 对外暴露的可以被客户端连接的地址
advertised.listeners=PLAINTEXT://mitchell-101:9092
# 日志文件的保存地址,多个地址可以用 逗号 隔开
log.dirs=/opt/module/kafka2.12_3.4.0/data
2.4. 修改堆栈内存
-
由于笔者的虚拟机资源有限,并且只是测试用,这里将内存调小
-
kafka 本质就是运行在 jvm 的 java 程序,所以设置堆栈内存的方式和正常 java 程序相同
-
我们找到相关启动脚本地址:/opt/module/kafka2.12_3.4.0/kafka-server-start.sh
-
修改以下内容,可以看到 默认是 1g,我们这里 修改成 256m(再小好像就起不来了)
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx256m -Xms256m"
fi
2.5. kraft 模式启动
# 进入到 kafka 的根目录
cd /opt/module/kafka2.12_3.4.0
# 获取秘钥,执行结果为:wrG5cTGRS9S2aiOTG-_cdg
./bin/kafka-storage.sh random-uuid
# 初始化,ps:下方为一条命令
kafka-storage.sh format -t wrG5cTGRS9S2aiOTG-_cdg -c /opt/module/kafka2.12_3.4.0/config/kraft/server.properties
# 启动集群
kafka-server-start.sh -daemon /opt/module/kafka2.12_3.4.0/config/kraft/server.properties
# 查看是否启动成功
jps
3. 生产者和消费者测试
# 创建一个 topic
# --create:表示创建
# --topic tp01:主题名称
# --partitions:分区数量,一般根据具体的 broker 数量指定,笔者这里部署的单节点,所以选 1
# --replication-factor 1:副本数量,一般这里配置2,但是笔者这里是单节点,副本没有必要,所以选 1
# --bootstrap-server mitchell-101:9092:服务器地址
kafka-topics.sh --create --topic tp01 --partitions 1 --replication-factor 1 --bootstrap-server mitchell-101:9092
# 创建一个消费者
# --from-beginning:表示从头开始消费,否则从最新的数据消费
kafka-console-consumer.sh --bootstrap-server mitchell-101:9092 --topic tp01
kafka-console-consumer.sh --bootstrap-server mitchell-101:9092 --from-beginning --topic tp01
# 创建一个生产者
# --broker-list mitchell-101:9092:服务器地址
kafka-console-producer.sh --broker-list mitchell-101:9092 --topic tp01