Что такое индексы? Что такое транзакция? ACID? Внешний ключ и зачем он нужен?
Как работать с Persistence Context или EntityManager, чтобы не забивалась память?
Какие коллекции из java.util.concurrent пригодны для многопоточной работы? Чем они отличаются от обычных коллекций?
В чём отличие publishOn от subscribeOn в реакторе?
Расскажи про event-driven взаимодействие между сервисами с использованием Kafka подробно и с деталями
Что такое голодание потока (starvation)?
На каком сервере приложений работает Spring WebFlux? Почему не Tomcat?
Нужно описать модель библиотеки. Есть 3 сущности: "Автор", "Книга", "Читатель". Физически книга только одна и может быть только у одного читателя. Нужно составить таблицы для библиотеки так что бы это учесть.
Две транзакции: одна читает, другая обновляет те же данные. Что произойдёт? Проблема неповторяемого чтения и уровень изоляции Repeatable Read.
Что такое race condition (состояние гонки)?
Есть бэк, есть юай. Стек стандартный: Java, Spring, React, Postgres. Задача: Спроектировать рест-ендпоинт в котором надо взять данные из 3 источников и отдать на ui, при этом необходимо обеспечить максимально возможную пропускную способность и минимально возможное время отклика (критерии макс\мин исходя из наших конкретных условий, т.к. по сути, у нас тут нет серебряной пули и надо найти некий компромисс). Известно, что ожидаемый пиковый rps на этот рест-ендпоинт будет равен 200. Известные детали по источникам: 1 источник - наша бд, запрос около 3 сек. 2 источник - смежный сервис рест, деградирует до 2 минут при 100 rps на него, в норм режиме ответ отдает за 5 сек. Мы не можем как-то изменить поведение этого источника на их стороне. 3 источник - смежный сервис рест, рандомно (каких-либо паттернов такого поведения не удалось выяснить) отдает 503, в норм режиме ответ приходит за 10 сек. Мы не можем как-то изменить поведение этого источника на их стороне.
Какую версию Java используете в продакшене?
Знаете ли вы про реактивные системы и принципы реактивного программирования?
Как реализовать связь многие-ко-многим в реляционной и документо-ориентированной БД?
Описание задачи: Требуется реализовать REST endpoint для получения списка страховых полисов, которые принадлежат заданному клиенту и являются оплаченными. Поскольку в системе существует очень большое количество полисов, требуется предусмотреть параметр для ограничения результата. @RestController public class ClientController { @Value("policy.limit") private int policyLimit; @Autowired private PolicyService policyService; @RequestMapping(path = "client/{clientId}/policies", method = RequestMethod.POST) public Response getClientPolicies(@PathVariable("clientId") String clientId) { List<PolicyDTO> policies = getPolicies().stream() .limit(policyLimit) .filter(p -> p.getClientIds().contains(clientId)) .filter(p -> p.isPaid()) .toList(); return new Response(policies); } @Transactional private List<PolicyDTO> getPolicies() { return policyService.getPolicies(); } @Data @AllArgsConstructor public class Response { private List<PolicyDTO> policies; } @Data public class PolicyDTO { private String id; private String name; private List<String> clientId; private Boolean isPaid; } @RequiredArgsConstructor @Component public class PolicyService { private PolicyDbRepository repository; List<PolicyDTO> getPolicies() { return repository.getPolicies(); } } public interface PolicyDbRepository { List<PolicyDTO> getPolicies(); }
Расскажи про проект в Газпроме.
Как настраивали отказоустойчивый кластер Kafka?
Насколько много было сообщений в ACL-сервисе? Были ли проблемы с балансировкой и нагрузкой?
Gradle vs Maven: с чем работали?
Расскажите о своём опыте работы, ключевых достижениях и стеке технологий