需要帮助来决定我在这种情况下可以使用哪些框架。我正在探索Zookeeper,但不完全确定如何解决这个用例。
背景:
我在寻找什么:
1.如何确保应用程序实例知道其他实例是否也创建了文件,如果每个实例都创建,那么只有它们应该传输文件
2.无论发送什么实例,合并文件都应该知道发送了什么。
我可以用什么框架来解决这个问题?
答案 0 :(得分:0)
你绝对可以使用ZooKeeper。我也会使用Apache Curator(注意:我是策展人的主要作者)。
所有实例共享文件服务器吗?即每个实例可以看到所有创建的文件吗?如果是这样,您可以使用ZooKeeper / Curator提名领导者,只有领导者完成所有工作。您可以在此处查看示例领导者选举代码:https://github.com/apache/curator/tree/master/curator-examples/src/main/java/leader
如果实例不共享文件服务器,您仍然可以使用ZooKeeper来协调共享文件的写入。您将再次提名一个领导者,该领导者公开所有实例可以写入的某种API,并且领导者创建共享文件。
您也可能会发现策展人屏障配方很有用:http://curator.apache.org/curator-recipes/double-barrier.html和http://curator.apache.org/curator-recipes/barrier.html
如果您想要更详细的设计,则必须提供有关用例的更多详细信息。