一.为啥弃用zookeeper
kafka 弃用 ZooKeeper 而采用 KRaft 的主要原因是为了改进 Kafka 集群的可靠性和可管理性。
在传统的 Kafka 架构中,ZooKeeper 用于存储和管理集群的元数据、配置信息和状态。然而,使用 ZooKeeper 作为协调服务存在一些限制和挑战,例如:
-
单点故障:ZooKeeper 是一个独立的组件,如果 ZooKeeper 集群发生故障或不可用,将导致整个 Kafka 集群无法正常工作。
-
复杂性:维护和管理两个独立的系统(Kafka 和 ZooKeeper)增加了部署和操作的复杂性,同时需要处理两个系统之间的一致性和同步问题。
-
性能开销:Kafka 使用 ZooKeeper 来进行领导者选举和分区分配等操作,这增加了额外的网络开销和延迟,并对整体性能产生一定影响。
为了解决这些问题,Kafka 开始引入 KRaft 协议作为新的协调机制,并在后续版本中逐渐取代了对 ZooKeeper 的依赖。使用 KRaft 带来以下优势:
-
更好的可靠性:KRaft 提供了更强大的副本一致性保证,可以避免单点故障问题,并提供更高的可用性。
-
更好的可管理性:集成协调机制的改进使得管理和维护 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
三.修改配置文件
config/kraft/server.properties
How to easily install kafka without zookeeper | Aditya’s Blog
四.执行相关命令
4.1生成集群id
4.2初始化
4.3启动server
参考下面链接即可
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
原文地址:https://blog.csdn.net/JavaCoder_juejue/article/details/134625463
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_654.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!