我们有三个 Web 服务(/a
、/b
、/c
),每个服务都映射到一个方法( go()
) 在单独的 Java 类(ClassA
、ClassB
、ClassC
)中。
只能同时运行一个服务(即:/b
不能在 /a
运行时运行)。然而,由于这是一个 REST API,因此无法阻止客户端请求同时运行的服务。
在服务器上强制服务不要并发运行的最好和最简单的方法是什么?
更新:这是一个内部应用,我们的负载不会很大,只有一个应用服务器。
更新:这是一个主观问题,因为您可以对影响最终答案的一般应用程序设计提出不同的论点。接受了 overthink 的回答,因为我发现它最有趣、最有帮助。
最佳答案
您的设计有缺陷。服务应该是幂等的。如果您拥有的类(class)不支持该功能,请重新设计它们直到支持为止。听起来这三种方法中的每一种都应该是服务的基础,而不是类。
关于java - 如何防止 Web 服务 API 中的并发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777542/