Kafka 3.9.1 单机部署实战:Kraft模式+SASL认证全流程解析

1. 为什么选择Kafka 3.9.1的Kraft模式?

如果你之前部署过Kafka,大概率被ZooKeeper“折磨”过。没错,在Kafka 3.0版本之前,一个完整的Kafka集群离不开ZooKeeper这个“大管家”,它负责管理集群的元数据,比如有哪些Broker、Topic分区在哪儿。但这带来了两个头疼的问题:一是系统架构变复杂了,你需要额外维护一个ZooKeeper集群;二是运维成本上去了,一旦ZooKeeper出问题,整个Kafka集群都可能受影响。

所以,当Kafka社区推出Kraft模式(全称Kafka Raft Metadata mode)时,我第一时间就上手试了。简单说,Kraft模式就是让Kafka“自力更生”,把原本由ZooKeeper管理的元数据,改由Kafka控制器节点内部通过Raft共识算法来管理。这样一来,部署架构瞬间清爽了,从“Kafka集群 + ZooKeeper集群”的双组件模式,变成了单一的Kafka集群。对于咱们开发测试,或者中小型项目来说,这简直是福音。单机部署再也不用先折腾ZooKeeper了,一个包、一份配置就能跑起来,省心省力。

这次咱们要实战的Kafka 3.9.1版本,在Kraft模式的稳定性和易用性上又进了一步。我实测下来,它的安装流程已经非常清晰,社区文档也完善了很多。但光有Kraft还不够,数据安全是另一个必须考虑的问题。尤其是在测试环境,我们可能也会处理一些敏感数据,或者不希望谁都能连上来乱发消息。所以,我强烈建议从一开始就加上SASL认证,这就像给你家大门装把锁,虽然是在自己电脑上玩,但养成好习惯很重要。

那么,Kraft + SASL的组合,就成了一个既简洁又安全的单机部署方案。它完美适用于个人学习、功能验证、微服务本地调试等场景。你不需要搞懂复杂的Raft算法细节,跟着我的步骤,就能在10分钟内搭好一个带认证的、生产可用的单机Kafka环境。下面,我就把踩过坑、验证过的全流程,掰开揉碎了讲给你听。

2. 动手之前:环境与资源准备

工欲善其事,必先利其器。在开始敲命令之前,咱们先把“厨房”收拾好。整个过程非常直接,主要就三件事:准备一台Linux机器(物理机、虚拟机、云服务器都行)、装上Java、下载Kafka安装包。我这里以一台干净的CentOS 8 Stream虚拟机为例,其他系统如Ubuntu、Debian的命令我也会一并给出,你可以对照着来。

2.1 搞定Java运行环境

Kafka是跑在JVM上的,所以Java是必需品。Kafka 3.9.1官方推荐使用Java 11或Java 17。为了最大的兼容性,我们选择安装OpenJDK 11。打开你的终端,用下面这条命令检查一下系统是否已经安装了Java:

java -version

如果显示“command not found”或者版本是Java 8,那我们就需要安装。根据你的操作系统,选择对应的命令:

对于CentOS、RHEL、Fedora等基于RPM的系统:

sudo yum install -y java-11-openjdk-devel

对于Ubuntu、Debian等基于APT的系统:

sudo apt update
sudo apt install -y openjdk-11-jdk

安装完成后,再次运行 java -version,你应该能看到类似“OpenJDK 11.0.xx”的输出。这就表示Java环境准备好了。这里有个小坑我遇到过:有些云服务器的镜像可能预装了多个Java版本。你可以通过 sudo alternatives --config java 命令来查看和切换默认的Java版本,确保选中的是咱们刚装的11。

2.2 下载并解压Kafka安装包

接下来,我们去获取Kafka 3.9.1的安装包。Apache官方下载可能比较慢,我们可以用国内的镜像源,比如阿里云镜像,速度会快很多。

# 进入一个你习惯的安装目录,比如 /usr/local
cd /usr/local

# 使用wget下载安装包。注意版本号是 3.9.1,Scala版本是 2.12,这是Kafka服务端的编译版本,对使用者来说基本无感。
sudo wget https://mirrors.aliyun.com/apache/kafka/3.9.1/kafka_2.12-3.9.1.tgz

# 解压安装包
sudo tar -zxvf kafka_2.12-3.9.1.tgz -C /usr/local/

# 为了方便后续操作,可以创建一个软链接(可选)
sudo ln -s /usr/local/kafka_2.12-3.9.1 /usr/local/kafka

做完这一步,Kafka的所有文件就静静地躺在 /usr/local/kafka_2.12-3.9.1 目录下了。你可以进去看看,bin/ 目录下是各种脚本,config/ 目录下是配置文件,其中就包含我们马上要用到的 config/kraft/ 目录,这里专门存放Kraft模式的相关配置。

2.3 规划好你的网络与防火墙

这是部署服务时最容易忽略,但一出问题又最让人抓狂的一步。Kafka默认会监听两个端口:

  • 9092: 这是给客户端(生产者、消费者)连接用的。
  • 9093: 这是Kraft模式下,控制器(Controller)内部通信用的端口。

如果你是在本地虚拟机操作,并且只打算在本机连接(比如用127.0.0.1),那基本不用管。但如果你用的是云服务器,或者希望从其他机器连接这个Kafka,就必须确保服务器的安全组或防火墙规则放行了 9092 端口。对于9093端口,因为它主要用于本机内部进程通信,通常不需要对外开放。

以CentOS 8(使用firewalld)为例,开放端口的命令如下:

sudo firewall-cmd --permanent --add-port=9092/tcp
sudo firewall-cmd --reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值