首先我们分析一下zookeeper在kafka中的作用

zookeeper可以实现controller的选举,并且记录topic和partition的元数据信息,帮助多个broker同步数据信息。
在新版本中的kraft模式中可以这个管理和选举可以用kafka自己完成,而不再依赖zookeeper。

搭建kraft集群

首先要设定process.roles ,可以人为指定每个人的角色 ,如果指定broker那么它永远是broker,
如果指定controller那么它一定是controller,但是这样的话其他人就没有办法作为主节点了。
所以一般选择broker,controller可以自动进行适配和选举。
一般一个集群中会设定大部分是broker,少量的几个是controller+broker方便选举。

设定哪几个机器作为协调的机器出现,帮助kafka自身选举

还需要设定对外端口和每个节点的编号
最后还要设定数据存储的位置
log.dirs=/data/kafka-logs