Kafka2.8无Zookeeper模式下集群部署
一:介绍kafka在Ralf协议上实现了KRalf,并用此替代了Zookeeper,目前2.8可以开始使用无Zookeeper模式,但官方不建议生产用。具体的协议原理以及说明请自行Baidu或者Google二:单机部署下载kafka2.8,解压。可以看到config里面有kraft文件目录。kraft目录下有三个配置文件以及一个readme.md,查看readme.md,也就是你目前能看到的官方给
·
一:介绍
kafka在Ralf协议上实现了KRalf,并用此替代了Zookeeper,目前2.8可以开始使用无Zookeeper模式,但官方不建议生产用。具体的协议原理以及说明请自行Baidu或者Google
二:单机部署
下载kafka2.8,解压。可以看到config里面有kraft文件目录。kraft目录下有三个配置文件以及一个readme.md,查看readme.md,也就是你目前能看到的官方给出的无zookeeper模式的配置方式和教程。如果你按照这个部署单节点,看前半部分就够了,很简单。但后面的一堆坑,而且你在网上找不到教程。
单机部署只需要
./bin/kafka-storage.sh random-uuid 生成一个集群ID
./bin/kafka-storage.sh format -t <uuid> -c ./config/kraft/server.properties 把集群ID同所使用的配置文件生成/tmp/kraft-combined-logs目录
./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties 启动
接下来你就可以使用单节点的kafka了
三:集群部署
我写这篇博客的时候,4月29号,网上找不到教程,都是自己根据官方说明摸索的 。
首先,你还是要先生成一个ID,然后确保,这个很重要,确保、/tmp/kraft-combined-logs这个目录是空的。不然,不管你怎么配置集群,这个目录下存的都是你之前配置的元数据。
然后,你先配置/config/kraft/server.properties 文件,这三个文件要根据你集群来配。如果你有三个准备用来当控制器的节点,你必须在controller.quorum.voters上配置这三个控制器
例如:
controller.quorum.voters=1@master:9093,2@slave1:9093,3@slave2:9093
这样,这三个节点就可以用来竞争当控制器,可以容忍一个故障。
还有一个配置 node.id,这个按节点顺序配就行。
所以我在server.properties 的 “Server Basic”配置如下
############################# Server Basics #############################
# The role of this server. Setting this puts us in KRaft mode
process.roles=broker,controller
# The node id associated with this instance's roles
node.id=1
# The connect string for the controller quorum
controller.quorum.voters=1@master:9093,2@slave1:9093,3@slave2:9093
这个配置的意思就是,我有三个节点用来竞争控制器,并且存到这个序列上,但同时该节点又可以用来充当代理,也就是kafka队列分区可以部署的位置。其余两个配置节点只是node.id不一样而已。如果你有多个节点,并且想三个节点只用来充当控制器,不做代理,控制器可以仅仅在controller.properties下配置,然后其余只做代理的节点配置broker.properties,不变的是每个配置的controller.quorum.voters都是一样的。最后你先用./bin/kafka-storage.sh format -t <uuid> -c这个,指定你的配置文件生成元数据, 最后你在节点上启动的配置参数选你配置的文件就可以了。
我用docker容器部署也完全OK,自己搞了给镜像,需要的可以联系我。
更多推荐
已为社区贡献2条内容
所有评论(0)