【保姆式通关宝典】使用Kraft快速搭建Kafka集群(含服务鉴权)

什么是KRaft

Kafka KRaft是自Kafka2.8起发布的,用于替代Zookeeper的一种共识服务。
即所有集群的元数据将全部存储在Kafka主题中,并全权由Kafka内部进行自主管理。
从而脱离及解除Kakfa原有对Zookeeper的性能限制及强依赖关系。

KRaft的优势是什么

  1. 使Kafka更便于部署及管理:内存需求量降低,只需要一个运行程序即可完成!
    没有中间商赚差价!
  2. 极大提升Kafka核心功能的效率:基于日志、事件驱动的元数据传播,减少网络及性能开销!
    没有中间商赚差价!!
  3. 更高的可拓展性:单集群分区Zookeeper上限是数万,而KRaft可以轻松有效的拓展到数百万!
    没有中间商赚差价!!!


前言

闲言少叙,我们直接进入正题。


一、服务器准备

基于实际业务场景,我们需要准备至少3台服务器

服务器名称 服务器IP 服务器系统
kraft1 192.0.0.1 Centos8.2
kraft2 192.0.0.2 Centos8.2
kraft3 192.0.0.3 Centos8.2

二、修改主机名(可选)

提示:请在对应服务器下执行对应代码:

hostnamectl set-hostname kraft1
hostnamectl set-hostname kraft2
hostnamectl set-hostname kraft3

三、更改Host配置(可选)

cat >> /etc/hosts << EOF
192.0.0.1 kraft1
192.0.0.2 kraft2
192.0.0.3 kraft3
EOF

四、下载并安装OpenJDK17(已安装可跳过)

# 查询已安装的jdk
rpm -qa|grep java
# 移除已安装jdk
rpm -e --nodeps (查出来带open字样的)
# 创建java目录
mkdir -p /opt/java
# 下载Open-JDK17
wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
# 解压JDK
tar -xzf /data/nfs/openjdk-17.0.2_linux-x64_bin.tar.gz  -C /opt/java
# 写入/etc/profile环境变量
# 需要检查,个别服务器需要vim打开后在PATH内容后追加[:$PATH:$JAVA_HOME/bin])
cat >> /etc/profile << EOF
export JAVA_HOME=/opt/java/jdk-17.0.2
export PATH=$PATH:$JAVA_HOME/bin
EOF
# 环境变量生效
source /etc/profile
# 查看java版本
java -version

五、下载并解压Kafka

# 创建Kafka目录
mkdir -p /opt/kakfa
# 进入Kafka目录
cd /opt/kafka
# 下载Kafka
wget https://mirrors.bfsu.edu.cn/apache/kafka/3.2.0/kafka_2.13-3.2.0.tgz
# 解压Kafka
tar -xzf kafka_2.13-3.2.0.tgz  -C /opt/kafka

六、生成集群唯一id

提示:只需要在一台服务器上生成即可

# 进入kafka根目录
cd /opt/kafka/kafka_2.13-3.2.0
# 使用kafka-storage tool生成集群唯一id
./bin/kafka-storage.sh random-uuid

七、格式化存储元数据的目录

提示:需要将random-uuid替换为上一个命令执行生成的uuid

# 进入kafka根目录
cd /opt/kafka/kafka_2.13-3.2.0
<think>好的,我需要帮助用户在CentOS系统上安装Kafka 4.0版本。首先,用户提到的Kafka 4.0可能还处于早期阶段,因为根据引用[2]和引用[4]的信息,Kafka 4.0可能尚未正式发布,或者可能还在开发中。引用[2]提到,Kafka 3.x版本开始弃用Java 8,而Kafka 4.0将完全放弃Java 8,建议使用Java 11或更高版本。因此,我需要确认用户是否确实需要安装Kafka 4.0,或者是否有版本上的误解。 接下来,用户的操作系统是CentOS,具体版本未提及,但根据引用中的例子,可能是CentOS7。需要检查Kafka 4.0的系统要求,特别是Java版本。根据引用[2],Kafka 3.x需要Java 11或更高,而4.0可能要求更高,比如Java 17。因此,用户需要先安装合适的JDK版本。 安装步骤可能包括以下几步:1. 安装Java环境;2. 下载Kafka 4.0的安装包;3. 配置Kafka集群(如果需要);4. 启动Kafka服务。但根据引用[4],Kafka 4.0可能使用KRaft模式(替代ZooKeeper),因此配置步骤可能与旧版本不同,需要参考官方文档。 另外,引用[3]提到了在启动脚本中配置JMX端口和服务器IP,这可能对监控有用,用户可能需要类似配置。同时,引用[1]和[3]中的SASL认证配置可能在需要安全设置时适用,但用户当前的问题未提及安全需求,可能暂时不需要。 需要注意的是,用户提供的引用中并没有直接关于Kafka 4.0安装的详细步骤,尤其是因为4.0可能尚未正式发布,所以可能需要参考最新的官方文档或社区资源。此外,用户可能需要从Apache官网获取正确的下载链接,并确保依赖项满足要求。 最后,生成相关问题需要考虑用户可能的后续需求,比如集群配置、性能优化、常见错误处理等,以及版本升级可能带来的变化。</think>在CentOS系统上安装Kafka 4.0需注意以下关键步骤: ### 一、环境准备 1. **确认Java版本** Kafka 4.0需JDK 17或更高版本(参考Kafka 4.0对Java的依赖变化[^2])。使用以下命令安装JDK 17: ```bash sudo yum install java-17-openjdk-devel java -version # 验证安装 ``` 2. **下载Kafka 4.0安装包** 从Apache官网获取最新版本(若4.0已发布): ```bash wget https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz tar -xzf kafka_2.13-4.0.0.tgz cd kafka_2.13-4.0.0 ``` ### 二、集群模式配置(KRaft模式) 1. **生成集群ID** Kafka 4.0默认使用KRaft模式(无需ZooKeeper)[^2][^4]: ```bash bin/kafka-storage.sh random-uuid # 输出示例:m6BZb8yRSzmdNvW9kzOoQg ``` 2. **格式化存储目录** 每个节点执行(替换`<uuid>`为生成的ID): ```bash bin/kafka-storage.sh format -t <uuid> -c config/kraft/server.properties ``` 3. **配置文件调整** 编辑`config/kraft/server.properties`,设置节点参数: ```properties node.id=1 # 节点唯一ID(集群内不重复) controller.quorum.voters=1@192.168.1.101:9093,2@192.168.1.102:9093 # 控制器节点列表 listeners=PLAINTEXT://:9092,CONTROLLER://:9093 advertised.listeners=PLAINTEXT://192.168.1.101:9092 # 本机IP log.dirs=/tmp/kraft-logs # 日志存储路径 ``` ### 三、启动服务 ```bash # 前台启动(测试用) bin/kafka-server-start.sh config/kraft/server.properties # 后台启动 bin/kafka-server-start.sh -daemon config/kraft/server.properties ``` ### 四、验证安装 1. **创建测试主题** ```bash bin/kafka-topics.sh --create --topic test --partitions 3 --replication-factor 2 --bootstrap-server 192.168.1.101:9092 ``` 2. **查看集群状态** ```bash bin/kafka-metadata-shell.sh --snapshot /tmp/kraft-logs/__cluster_metadata-0/00000000000000000000.log ``` ### 五、配置系统服务(可选) 参考引用[3],创建`/etc/systemd/system/kafka.service`: ```ini [Unit] Description=Kafka KRaft Server After=network.target [Service] User=kafka ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties Restart=on-failure [Install] WantedBy=multi-user.target ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值