有关于kafka集群搭建的教程,网上已经太多太多。不想赘述,大家可以自行查阅。这里记录一下本人搭建集群过程中的几点问题。
本文中涉及到的
zookeeper版本:3.4.12
kafka版本:2.0.1
【问题】是否可以使用kafka内置zookeeper?
不可以。内置的zookeeper只能用于单机版本。尽管可以通过kafka配置项进行关联,但是实际上broker信息似乎只能保存到各自的内置zookeeper上。
【问题】zookeeper是否必须是奇数个数?
建议是奇数,因为这样好选举。但是不是说偶数就不行。实践证明偶数可以搭建起来zookeeper集群。
【问题】zookeeper中的myid是否必须从0开始?
不是,只要唯一即可
【问题】kafka中的brokerid是否必须从0开始?
不是,只要唯一即可。特别注意的是,这个brokerid和zookeeper中的myid也没有必然联系,不一定要一样。
【问题】Configured broker.id xx doesn’t match stored broker.id xx in meta.properties
之前如果修改过broker id 需要把kafka logs中的meta.properties删除。或者干脆将logs清除。
【问题】Replication factor: x larger than available brokers: x
如果创建topic的时候,–replication-factor参数多于集群中kafka服务器个数的话会抛出这个异常。
如果你发现并没有大于kafka服务器个数的话,那可能就是你的集群并没有成功创建,可能是创建了多个kafka单机版本。一般来说,如果你的zookeeper集群创建成功的话,kafka集群就应该ok的。