【发布时间】:2013-02-18 23:56:16
【问题描述】:
我几乎没有可以由用户保留的座位。一次,只有一个用户可以参与预订过程,因此同一座位不会被多个用户预订。在我的 Java 代码中,我使用了“同步”关键字来完成它。这行得通。
但是,现在我的代码部署在两台服务器上,比如 S1 和 S2。假设,假设有最后一个座位可用。两个用户,比如 U1 和 U2,想要保留最后一个座位。负载均衡器可能会将用户 U1 发送到服务器 S1 并将用户 U2 发送到服务器 S2。现在,“本地”同步仍然可以以相同的方式工作,但它不能在预订时阻止其他用户。这会使两个用户都保留最后一个座位,这是个问题。
那么问题是如何确保多个用户在多服务器环境中保留席位而不会发生任何冲突?
【问题讨论】:
-
您在使用 javaEE 和企业 javabeans 吗?
-
Java 语言或库不提供多平台同步。您可以尝试为此配置 S1 和 S2 使用的共享数据库,但这在 Java 之外。
-
是的,我使用的是 JavaEE,但不是企业级 Javabeans。
标签: java locking synchronized