有没有推荐的方法来同步Tomcat Servlet实例,这些实例竞争相同的资源(比如一个文件,或者一个不是ACID的MongoDB数据库)?
我熟悉线程同步以确保两个Java线程不会同时访问同一个Java对象,但不熟悉具有超出JRE范围存在的对象的同步。
编辑:我只有1个Tomcat服务器正在运行。无论这是否意味着不同的JVM,我不确定(我假设它是相同的JVM,但可能是不同的线程)。
编辑:特定用例(但我是在一般情况下提出问题):
Tomcat服务器充当文件存储,将原始文件放入目录中,并使用MongoDB存储元数据。这是一个非常简单的概念,除了并发问题。如果有两个并发请求同时存储相同的文件,或者同时管理相同对象的元数据,我需要解决这个问题,但不确定如何解决。我想最简单的方法是以某种方式序列化/排队请求。有办法在Tomcat中实现排队吗?
我熟悉线程同步以确保两个Java线程不会同时访问同一个Java对象,但不熟悉具有超出JRE范围存在的对象的同步。
编辑:我只有1个Tomcat服务器正在运行。无论这是否意味着不同的JVM,我不确定(我假设它是相同的JVM,但可能是不同的线程)。
编辑:特定用例(但我是在一般情况下提出问题):
Tomcat服务器充当文件存储,将原始文件放入目录中,并使用MongoDB存储元数据。这是一个非常简单的概念,除了并发问题。如果有两个并发请求同时存储相同的文件,或者同时管理相同对象的元数据,我需要解决这个问题,但不确定如何解决。我想最简单的方法是以某种方式序列化/排队请求。有办法在Tomcat中实现排队吗?