我正在设置一个 kafka+zookeeper 集群。假设我想要 3 个 kafka 经纪人。我想知道我是否可以在它们上设置 3 台带有 kafka 的机器,然后在相同的节点上运行 zookeeper 集群。所以集群中每台机器都有一个kafka+zookeeper节点,而不是3台机器给kafka,3台机器给zookeeper(一共6台)。
有什么优点和缺点?这些机器很可能专用于运行 kafka/zookeeper。我在想是否可以在不牺牲性能的情况下降低一些成本。
请您参考如下方法:
我们多年来一直在生产环境的同一节点上运行 zookeeper 和 kafka broker,没有任何问题。集群运行在 非常非常高 qps和IO流量,所以我敢说我们的经验适合大多数场景。
优点很简单,就是省机器。 Kafka brokers 是 IO 密集型的,而 zookeeper 节点不会像 CPU 那样消耗太多的磁盘 IO。所以他们在大多数情况下不会互相打扰。
但是请记住继续关注您的 CPU 和 IO(不仅是磁盘还有网络)的使用情况,并在它们达到瓶颈之前增加集群容量。
我没有看到任何缺点,因为我们有很好的集群容量规划。