В чём основная проблема данной реализации - Не использует пул соединений для джедаев - Нет резервного копирования данных Redis - Нет внутреннего переключателя проверки - Нет исключений обработки - Некорректно обновляется элемент калибровки - zadd и zscore без проверок ошибок ```java import redis.clients.jedis.Jedis; import java.util.Set; public class WineCellar { private Jedis jedis; public WineCellar() { jedis = new Jedis("localhost", 6379); initializeWines(); } private void initializeWines() { jedis.zadd("wines", 1978, "Chateau Margaux"); jedis.zadd("wines", 1990, "Domaine de la Romanee-Conti"); jedis.zadd("wines", 2005, "Opus One"); } public void updateWineYear(String wine, double newYear) { double oldYear = jedis.zscore("wines", wine); if (oldYear != newYear) { jedis.zadd("wines", oldYear, wine); // Incorrect update } } public Set<String> getWinesByYear(double minYear, double maxYear) { return jedis.zrangeByScore("wines", minYear, maxYear); } public static void main(String[] args) { WineCellar cellar = new WineCellar(); cellar.updateWineYear("Chateau Margaux", 1982); System.out.println(cellar.getWinesByYear(1970, 2000)); } } ```
/** * == ФТ == * Сервис обработки заказа получает заказ для обработки через Rest API. * Обработка в следующем: * - Проверить наличие товара на складе (вызывается внешний сервис по REST/HTTP). Если товара нет, то обработка заказа прекращается. * - Сохранить заказ в БД заказов * - Запустить дальнейшую обработку заказа (Processing, вызывается внешний сервис по REST/HTTP) * - Инициировать уведомления о новом заказе (Notification, вызывается внешний сервис по REST/HTTP) * * == НОТ == * - обработка должна быть такой, что если сохранить в БД заказ не удалось, то запускать заказ в обработку (processing) и инициировать уведомление (notification) не надо * - использовать для корреляции логов идентификатор заказа * - поддержать метрики 1) количество принятых заказов 2) количество успешно обработанных заказов * - сервис должен обрабатывать до 100 заказов в секунду */
Почему нельзя создавать индексы заранее на всякий случай?
10 приложений-обработчиков постоянно забирают из базы данных задачи и запускают их обработку. Как не допустить ситуации, когда два экземпляра приложения взяли в работу одну и ту же задачу?
COUNT(*) vs COUNT(column) — результат будет одинаковый или разный?
Все бины — синглтоны. В один и тот же REST-метод прилетает много запросов. Чем обеспечивается потокобезопасность? Spring что-то гарантирует из коробки?
На что обращали внимание при оптимизации SQL-запросов? Как оптимизировали?
Зачем вообще делаются события (event-driven подход)? В чём кайф асинхрона через Kafka?
Что значит 'не держать состояние на брокере' в контексте Kafka?
Если у тебя есть два бина, как выбрать один из них по умолчанию?
Что такое LLM, как она работает? Как повлиять на вариативность ответов?
Как выглядит график heap-памяти здорового приложения?
Если бы применил LEFT JOIN — что изменилось бы?
Задача по PostgreSQL: обеспечить консистентность баланса и защиту от отрицательного баланса при 10 одновременных запросах на списание
Расскажи про сервис маршрутизации заявок с конфигурацией из БД. Что это за конфигурации? Как работала горячая подгрузка?
Сколько времени понадобится, чтобы выйти на новое место работы?
Зачем нужен default метод в интерфейсе?
Как в Kafka сделать exactly-once на уровне консьюмера при сохранении в БД (избежать дубликатов)?
Что такое индексы в базе данных?
Для чего нужны prototype бины в Spring? Приведите пример использования.