什么是KRaft
Kafka KRaft是自Kafka2.8起发布的,用于替代Zookeeper的一种共识服务。
即所有集群的元数据将全部存储在Kafka主题中,并全权由Kafka内部进行自主管理。
从而脱离及解除Kakfa原有对Zookeeper的性能限制及强依赖关系。
KRaft的优势是什么
- 使Kafka更便于部署及管理:内存需求量降低,只需要一个运行程序即可完成!
没有中间商赚差价! - 极大提升Kafka核心功能的效率:基于日志、事件驱动的元数据传播,减少网络及性能开销!
没有中间商赚差价!! - 更高的可拓展性:单集群分区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