Работали ли с нереляционными БД (Redis, Cassandra)?
За что отвечает редирект ASK в Redis Cluster?
Как спрятать бин, чтобы клиенты библиотеки его не видели?
Для чего нужен @ComponentScan?
Где Spring Boot ищет компоненты, если нет @ComponentScan?
public class Accumulator { private Map<String, Object> data = new HashMap<>(); // текущий набор данных private List<Map<String, Object>> dataList = new ArrayList<>(); // пачка с данными private Map<Instant, String> responses = new HashMap<>(); // ответы сервера, принимающего данные private int dataId; /** * Добавляет поле field со значением value в набор */ public void add(String field, String value) { data.put(field, value); } /** * Возвращает значение по названию поля field */ public <T> T get(String field) { return (T) data.get(field); } /** * Возвращает ответы сервера принимающего данные */ public String getResponses() { String out = ""; for (String resp : responses.values()) { out += "; " + resp; } return out; } /** * Завершает сборку текущего набора данных и отправляет его в пачку */ public synchronized void push() { dataList.add(data); if (dataList.size() == 100) { send(); dataList.clear(); } data = new HashMap<>(); data.put("id", dataId++); } /** * Отправляет пачку на сервер принимающий данные */ private void send() { RestTemplate restTemplate = new RestTemplate(); HttpEntity<List<Map<String, Object>>> request = new HttpEntity<>(dataList); String url = "localhost:20808/msg/incoming"; ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class); responses.put(Instant.now(), response.getBody()); } }
Почему в прошлом проекте использовали MongoDB вместо PostgreSQL?
Как использовать механизм суффиксов (временных файлов) для обеспечения атомарности записи?
Начнем с подхода к GC, который не используют поколения (негенерационный GC).
Какую именно реализацию GC вы использовали?
В каких случаях не стоит использовать негенерационный GC?
Что именно вы делали с сообщениями (процессинг)? Насколько тяжеловесной была обработка?
Как контролировали соединения к TimescaleDB и Postgres одновременно, чтобы не положить базу?
Зачем использовали 60 консьюмеров на 30 партиций?
Как читали сообщения из Kafka: по одному или батчами?
Где в обычной Java можно встретить ForkJoinPool без его явного создания?
Что такое livelock между двумя потоками и как его избежать?
Расскажите про ArrayList: особенности, начальный размер, операции вставки и удаления.
Что такое load factor в HashMap и что происходит при его достижении?
Опыт с Kotlin, реактивным программированием (Project Reactor/WebFlux), CI/CD настройкой?