3

我将实现一个由 3 台机器组成的 kafka 集群,一台用于 zookeeper,另外 2 台作为代理。我有大约 6 台消费者机器和大约一百台生产者。

现在,如果其中一个代理失败,由于复制功能,可以避免数据丢失。但是如果zo​​okeeper失败,同一台机器无法启动怎么办?我有几个问题:

  1. 我注意到,即使在 zookeeper 失败后,生产者仍继续在指定的代理中推送消息。但消费者再也无法取回它们。因为消费者没有注册。那么在这种情况下,数据会永久丢失吗?
  2. 如何在运行时更改代理配置中的 zookeeper ip?他们是否必须关闭才能更改 zookeeper ip?
  3. 即使以某种方式将新的 Zookeeper 机器带入集群,以前的数据也会丢失吗?
4

1 回答 1

0

只运行一个 Zookeeper 实例是不能容错的,行为无法预测。根据HBase 参考,您应该设置一个至少有 3 台服务器的集成。

查看官方文档页面:Zookeeper clustered setup

于 2015-10-26T13:40:05.267 回答