gpt4 book ai didi

java - 当应用程序部署在负载均衡器后面的多个实例上时,如何在 Java 中同步公共(public)资源

转载 作者:行者123 更新时间:2023-11-30 07:41:23 25 4
gpt4 key购买 nike

当我的 Java 应用程序部署在负载均衡器后面的多个实例上时,我们如何使用 Java 中的同步来同步访问公共(public)资源?

因为,据我所知,同步只能在一个JVM下工作。但是当我们在多个实例上部署相同的 Java 应用程序来处理负载时,我们如何提供同步机制?

例如:- 有一个 HDFS 文件,java 应用程序向其附加/编辑该 HDFS 文件的内容。当我在多个实例上部署我的 Java 应用程序时,我如何确保只有一个来自 Java 应用程序的请求访问该 HDFS 文件?

最佳答案

简短的回答 - 如果不在设置中引入很多复杂性,就无法做到这一点。

虽然从技术上讲,您可以使用 Zookeeper 上可用的分布式锁之类的东西.我不会真的推荐他们。很难对它们进行大规模推理,而且在 Zookeeper 操作本身方面也存在额外的复杂性。

关于您发布的示例,这不是构建 HBase 等系统的原因吗?将您的数据建模为 Key->[Multiple Columns] 格式。然后,您可以在 HBase 上读取/写入数据,它会在幕后为您完成编辑/管理多个文件的繁重工作。

另一方面,如果您可以将要对文件执行的更改建模为一个事件,那么您就可以根据事件驱动架构的原则构建您的系统。

您可以在

上阅读更多相关信息

关于java - 当应用程序部署在负载均衡器后面的多个实例上时,如何在 Java 中同步公共(public)资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56088498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com