Встречается на собеседованиях • сегодня
Какие знаешь подходы обработки распределенных транзакций
В Java для обработки распределенных транзакций используются:
- 2PC (Two-Phase Commit) - координатор сначала собирает голоса участников (prepare), затем фиксирует/откатывает (commit/rollback). Пример с JTA:
java
@Transactional
public void transfer(Account from, Account to, BigDecimal amount) {
from.debit(amount);
to.credit(amount);
}-
Saga - последовательность локальных транзакций с компенсирующими действиями. Каждый шаг независим, при ошибке выполняются компенсации.
-
TCC (Try-Confirm-Cancel) - аналогично Saga, но с явными фазами:
- Try: резервирование ресурсов
- Confirm: подтверждение
- Cancel: отмена
-
Eventual Consistency - асинхронная синхронизация через события (Event Sourcing/CQRS).
Для микросервисов часто используют Saga или TCC, так как 2PC плохо масштабируется. Spring поддерживает JTA (Atomikos, Narayana) и Saga через Spring State Machine.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы