Как добиться синхронизации по нескольким JVM - PullRequest
0 голосов
/ 09 марта 2020

У меня есть кусок синхронизированного кода, который работает эффективно, но у меня возникают проблемы при запуске нескольких модулей на K8. Сценарий состоит в том, что обновление БД должно происходить только один раз за раз тем конкретным пользователем, который указан в собственном запросе и в программе.

Блок кода:

synchronized (this) {
    int calcAmount = person.getSum() + sal.getMonthlySal();
    calcAmount = calcAmount + refCount;
    int status = customQuery.updateUnit(calcAmount); 
} 

Существует некоторые манипуляции с данными, которые являются программными c, и, в конце концов, то же самое необходимо обновить в базе данных. Объект person должен обрабатываться синхронно.

Я понимаю, что должно быть что-то, что получает блокировка вне JVM, чтобы его можно было контролировать. Я использую Load Balancer в шаблоне Round Robin, поэтому запросы будут обрабатываться для всех экземпляров JVM.

Может кто-нибудь подсказать, что и как сохранить операцию потока, чтобы она не прерывалась? Любой фрагмент кода или ссылка будут хороши для продолжения.

...