当前,我们在Kafka上没有太多负担。但是我们预计将来会有一些不错的负担。因此,出于削减成本的考虑,我们计划暂时将Kafka堆栈仅包含一个节点(一个Zookeeper和一个Kafka Broker),然后基于负载,我们希望使其成为一个适当的群集(具有3个节点)至少)。
以这种方式启动(从一个节点开始,然后添加更多节点)是否可以。
我在某处读到它不可能无缝地完成。有人可以解释如果不行怎么办?
答案 0 :(得分:2)
您将需要停机才能停止Zookeeper + Kafka,编辑配置以包括更多服务器,然后再备份它们。用这些术语来说,它不是无缝的,因为将导致应用程序读/写服务中断。但是一旦一切重新开始,那应该没问题。
在本地环境之外,即使您只有一个经纪人,也建议绝对至少要有3位Zookeeper。仅仅一台Zookeeper服务器的故障对于Kafka来说确实是一件很糟糕的事情。建议您至少拥有3个用于复制和容错的代理,尽管您要承担多少负载。至少拥有一份数据总比没有好。
您不需要使用Kafka均匀地缩放Zookeeper;例如3个ZK + 1个代理,然后在以后添加更多代理,对于大型集群,请不要超过5-7个Zookeeper。