Есть ли рекомендуемый способ синхронизации экземпляров сервлета Tomcat, которые конкурируют за один и тот же ресурс (например, файл или базу данных, например MongoDB, которая не является ACID)?
Я знаком с синхронизацией потоков, чтобы гарантировать, что два потока Java не обращаются к одному и тому же объекту Java одновременно, но не с объектами, существующими вне JRE.
edit: у меня работает только 1 сервер Tomcat. Независимо от того, означает ли это разные JVM или нет, я не уверен (я предполагаю, что это та же самая JVM, но потенциально разные потоки).
edit: конкретный вариант использования (но я задаю вопрос в целом):
Сервер Tomcat действует как хранилище файлов, помещая необработанные файлы в каталог и используя MongoDB для хранения метаданных. Это довольно простая концепция, за исключением проблемы параллелизма. Если есть два одновременных запроса на сохранение одного и того же файла или управление метаданными для одного и того же объекта в одно и то же время, мне нужен способ решить эту проблему, и я не уверен, как это сделать. Я полагаю, что самым простым подходом было бы как-то сериализовать / поставить в очередь запросы. Есть ли способ реализовать организацию очереди в Tomcat?