使用 zookeeper 在集群上分发文件

Use zookeeper to distribute files over cluster

我有一个 API 可以根据用户输入创建一个文件。我需要将这个文件分布在一个集群上,这样 1 个文件应该只在 1 个节点上。我可以使用 zookeeper 来实现吗?如何实现?

用户可能想要删除该文件。这意味着当被要求时,zookeeper 需要从节点中删除文件。

我已经通读了 zookeeper wiki,但是很难理解how/when使用它。

是的,您可以使用 Apache Curator Recipes 来做到这一点。 Apache Curator 是 Apache Zookeeper 的改进客户端库。

你可以使用zookeeperwatchAPI和Curator的分布式锁来实现你想要的。

  1. 首先,在创建文件时,在集群中所有节点正在监视的ZNode下创建一个ZNode(可能是文件内容作为数据)。然后,集群中的所有节点将在文件创建时得到通知
  2. 然后,节点将竞争获取一个分布式锁并且获取它的节点将下载文件(如果你想或引入另一种机制来跟踪已获取的文件)。

希望你有所了解。