Я занимаюсь разработкой микросервиса Java 8 Spring 5, который работает на встроенном сервере Jetty.Я намереваюсь создать несколько экземпляров этого микросервиса, поэтому будет несколько серверов Jetty, работающих одновременно на разных портах, по одному для каждого порожденного экземпляра.
Все экземпляры совместно используют одну и ту же базу данных, которая является базой данных MongoDB.
Изнутри моего микросервиса я вызываю сторонний REST Web Service.Я сохраняю данные, возвращенные этим REST WS, в моей базе данных, поэтому все экземпляры кластера могут воспользоваться запросом, сделанным одним из экземпляров.
Однако эти данные истекают через некоторое время, поэтому одинчерез некоторое время экземпляру придется вызывать внешнюю веб-службу.
Я не хочу, чтобы два или более экземпляра моего кластера одновременно вызывали эту внешнюю веб-службу, если один экземпляр вызывает эту веб-службу,а другой требует данных, он должен ждать, пока первый экземпляр извлечет данные, а затем использовать их.
Это когда я нахожу проблему, потому что я не знаю, как заблокировать один экземпляр причала.сервер, когда другой вызывает веб-службу.
Я искал возможность транзакции MongoDBs 4.0, чтобы попытаться заблокировать документ во время вызова службы, но безуспешно (все еще :)).