我们可以使用 zookeeper 来实现一致性哈希吗?我想用 zookeeper 维护我的服务器哈希,以便可以监控它们的健康状况以及使用 zookeeper 将给定密钥映射到特定服务器的逻辑。但是既然 Zookeeper 需要一个领导者(正如我所读的),那么在我的情况下谁可以成为领导者?是否可以只为健康监测而设置无领导者的 Zookeeper?我需要一个领导者吗?
这是我正在考虑的流程:
- 向zookeeper注册所有hashring服务器。
- 客户端发送密钥以获取服务器,zookeeper 拥有主机列表,它可以决定哪个分片将处理它。(逻辑可能是基于散列的分片或范围库驻留在 zookeeper 中)
- 如果服务器添加/删除,职责将被调整。(我假设我们必须在添加新服务器时手动更新职责,以防我们使用范围基础分片)?