gpt4 book ai didi

java - Web 应用程序中水平可扩展的写入一致性

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:13:31 25 4
gpt4 key购买 nike

我从事网络应用程序已有一段时间了。但是,我从未开发过作为多个实例托管且负载平衡的 Web 应用程序。

我的问题:Web 应用程序如何跨同一应用程序的多个实例管理写入?

例如:订票网站。想象一下,我为一部电影挡住某一排的座位并提交我的请求。同时,另一个用户(由于应用程序被集群和负载平衡而由其他实例提供服务)也阻止了我选择的一个席位,Web 应用程序如何管理这种情况?因为,它们是在不同机器上运行的不同进程,锁定发生在哪里?他们如何保持缓存一致性?有现成的解决方案吗?

最佳答案

好吧,在单节点应用程序中,您仍然会遇到与并发写入相同的问题,只是因为它是一个 JVM,所以更容易管理它们。

Since, they are different processes running on different machines where does locking happen?

数据库是所有实例共享的单点,是最简单的目标。根据您的预期负载和用例,optimistic locking很容易实现(example in JPA)。结合数据库事务,您可以在不交易性能的情况下实现一定程度的原子性。

How do they maintain cache consistency? Are there any solutions readily available?

缓存很难,尤其是在分布式环境中。例如可以在实例之间进行通信,并且一旦在一个实例中缓存更改,它就会将此事件广播到其他节点。还有很多其他产品,例如 ,

关于java - Web 应用程序中水平可扩展的写入一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109168/

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