Как написать собственный атомарный метод в Java? - PullRequest
0 голосов
/ 22 сентября 2018

Рассмотрим критическое приложение, и мне нужно сделать два внешних вызова для выполнения транзакции, второй вызов зависит от состояния первого вызова.Если мне нужно сделать этот метод атомарным, то есть я хочу убедиться, что вся транзакция происходит или ничего не происходит.Как мне поступить, если между вызовами произошел сбой системы?

Как мне ответить на этот вопрос, если я получу этот вопрос в интервью?

1 Ответ

0 голосов
/ 23 сентября 2018

Базы данных SQL поддерживают этот сценарий с помощью распределенных транзакций.Если бы вы могли реализовать свое требование на уровне базы данных (т.е. выполнить ваш атомарный метод в распределенной транзакции), это был бы самый простой способ достижения этого.

Другой подход (хотя и значительно более сложный) заключался бы в реализацииПротокол распределенных транзакций самостоятельно.Протокол двухфазной фиксации обычно используется базами данных SQL.Пожалуйста, смотрите https://en.wikipedia.org/wiki/Two-phase_commit_protocol для более подробной информации.

...