Встречается на собеседованиях • сегодня

С какой самой сложной задачей столкнулся в рабочем проекте

Одна из самых сложных задач - оптимизация системы обработки платежей с высокой нагрузкой (10k+ транзакций/мин). Основная проблема - race condition при списании баланса. Решение:

java
// Использование пессимистичной блокировки
@Transactional
public void processPayment(Long accountId, BigDecimal amount) {
    Account account = entityManager.find(
        Account.class, 
        accountId, 
        LockModeType.PESSIMISTIC_WRITE
    );
    
    if (account.getBalance().compareTo(amount) >= 0) {
        account.setBalance(account.getBalance().subtract(amount));
    } else {
        throw new InsufficientFundsException();
    }
}

Дополнительно пришлось:

  • Настроить пул соединений HikariCP
  • Оптимизировать индексы в БД
  • Реализовать retry механизм для deadlock'ов
  • Добавить кеширование через Redis для часто читаемых данных
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы