kafka kraft 集群搭建保姆级教学 包含几个踩坑点

一.为啥弃用zookeeper

kafka 弃用 ZooKeeper 而采用 KRaft 的主要原因是为了改进 Kafka 集群的可靠性和可管理性。

在传统的 Kafka 架构中,ZooKeeper 用于存储和管理集群的元数据、配置信息和状态。然而,使用 ZooKeeper 作为协调服务存在一些限制和挑战,例如:

  1. 单点故障:ZooKeeper 是一个独立的组件,如果 ZooKeeper 集群发生故障或不可用,将导致整个 Kafka 集群无法正常工作。

  2. 复杂性:维护和管理两个独立的系统(Kafka 和 ZooKeeper)增加了部署和操作的复杂性,同时需要处理两个系统之间的一致性和同步问题。

  3. 性能开销:Kafka 使用 ZooKeeper 来进行领导者选举和分区分配等操作,这增加了额外的网络开销和延迟,并对整体性能产生一定影响。

为了解决这些问题,Kafka 开始引入 KRaft 协议作为新的协调机制,并在后续版本中逐渐取代了对 ZooKeeper 的依赖。使用 KRaft 带来以下优势:

  1. 更好的可靠性:KRaft 提供了更强大的副本一致性保证,可以避免单点故障问题,并提供更高的可用性。

  2. 简化架构:通过将协调和元数据管理与 Kafka 自身集成,减少了对外部依赖的需求,简化了整体架构和部署。

  3. 改进的性能:KRaft 协议被优化用于 Kafka 的特定场景,可以提供更好的性能和更低的延迟。

  4. 更好的可管理性:集成协调机制的改进使得管理和维护 Kafka 集群变得更加容易和直观。

Kafka 从版本 2.8.0 开始,已经默认启用 KRaft 协议,并计划在未来的版本中完全移除对 ZooKeeper 的依赖。

需要注意的是,由于 KRaft 是一个相对较新的功能,如果你正在考虑迁移到 KRaft,请确保充分测试和评估,以确保其适合你的特定环境和需求。

二.下载所需资源以及环境配置

下载jdk17及kafka2.8.0以上版本 然后scala版本为2.13的要记住不然没有下面这个脚本

Red Hat build of OpenJDK Download | Red Hat Developer

apache-kafka-3.6.0安装包下载_开源镜像站-阿里云

kafka-storage.sh

然后配置jdk环境变量

三.修改配置文件

config/kraft/server.properties

How to easily install kafka without zookeeper | Aditya’s Blog

四.执行相关命令

4.1生成集群id

4.2初始化

4.3启动server

4.4创建topic来做测试

参考下面链接即可

How to easily install kafka without zookeeper | Aditya’s Blog

五.踩坑

踩的坑 
1.要下载scala为2.13版本的kafka
2.yX2YUxbmRBKzJCh1iww_Lg 这个是集群id 需要几台server保持一致
3.防火墙没打开要开下
firewall-cmd --permanent --zone=public --add-port=9092/tcp
firewall-cmd --permanent --zone=public --add-port=9093/tcp     
 

你可能感兴趣的:(kafka,分布式)