我如何在多个应用程序实例之间进行协调



在确定在这种情况下可以使用哪些框架时需要帮助。我正在探索Zookeeper,但不确定如何解决此用户酶。

背景:

  1. 说有连接到流源(KAFKA或ActiveMQ等(的应用到文件。
  2. 该应用程序被部署为4个实例。
  3. 每个实例都会创建一个文件,该文件存储了它上次处理的消息 小时。示例-FileName是Servername_8.00,用于从8-9处理的消息
  4. 要求是在每个实例在该窗口中创建一个文件,并且仅发送一个合并文件,该文件列出了所有4个文件名和记录数。

我要寻找的是
1.如何确保应用程序实例知道其他实例是否也创建了文件,并且是否创建了每个实例,则只能传输文件 2.无论是发送什么实例,合并的文件都应知道传输的内容。

我可以用什么框架来解决此问题?

您绝对可以使用Zookeeper。我也将使用Apache策展人(注意:我是策展人的主要作者(。

所有实例都共享文件服务器吗?即每个实例可以查看所有创建的文件吗?如果是这样,您可以使用Zookeeper/Curator提名领导者,并且只有领导者完成所有工作。您可以在此处查看样本领导者选举代码:https://github.com/apache/curator/tree/master/curator-curator-examples/src/main/java/leader

如果实例不共享文件服务器,则仍然可以使用Zookeeper协调共享文件的写作。您将再次提名一个领导者,该领导者暴露了所有实例可以写入的API,并且领导者创建了共享文件。

您还可能会发现策展人屏障食谱有用:http://curator.apache.org/curator-recipes/double-barrier.html和http://curator.apache.org/curatare.org/curator.org/curator-recipes/barrier-barrier.html.html

如果您想要更详细的设计,则必须提供更多的用例。

相关内容

最新更新