我有几个座位需要用户预定。每次只能有一个用户参与预订过程,以便同一座位不被多个用户预订。在我的Java代码中,我使用了“synchronized”关键字来完成这项任务。这有效。
然而,现在我的代码部署在两个服务器上,例如S1和S2。假设现在只剩下最后一个座位。两个用户,U1和U2,都想预订这个座位。负载均衡器可能会将用户U1发送到服务器S1,将用户U2发送到服务器S2。现在,“本地”的同步仍然可以正常工作,但它将无法阻止另一个用户在进行预订时发生冲突。这会导致最后一个座位被两个用户同时预订,这是一个问题。
因此问题是如何确保在多服务器环境中多个用户可以预订座位而不产生冲突?
然而,现在我的代码部署在两个服务器上,例如S1和S2。假设现在只剩下最后一个座位。两个用户,U1和U2,都想预订这个座位。负载均衡器可能会将用户U1发送到服务器S1,将用户U2发送到服务器S2。现在,“本地”的同步仍然可以正常工作,但它将无法阻止另一个用户在进行预订时发生冲突。这会导致最后一个座位被两个用户同时预订,这是一个问题。
因此问题是如何确保在多服务器环境中多个用户可以预订座位而不产生冲突?