Встречается на собеседованиях • сегодня
Что такое распределенная транзакция
Распределенная транзакция — это операция, затрагивающая несколько независимых ресурсов (например, БД или сервисы), которая должна быть выполнена атомарно (все или ничего). Для управления такими транзакциями используется протокол двухфазного коммита (2PC):
- Фаза подготовки — координатор запрашивает участников, могут ли они выполнить транзакцию.
- Фаза коммита/отката — если все участники готовы, транзакция фиксируется, иначе откатывается.
Пример с Java и JTA (Java Transaction API):
java
@Stateless
public class DistributedService {
@Resource
private UserTransaction utx;
@PersistenceContext(unitName = "db1")
private EntityManager em1;
@PersistenceContext(unitName = "db2")
private EntityManager em2;
public void transfer() throws Exception {
utx.begin();
em1.persist(new Entity()); // Операция в БД1
em2.persist(new Entity()); // Операция в БД2
utx.commit(); // Фиксация или откат
}
}Проблемы: блокировки, низкая производительность, сложность восстановления после сбоев. Альтернативы — Saga-паттерн или eventual consistency.

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