-
Так ли вам необходим Reactor прямо сейчас?
rusjavareactiveСейчас происходит много шума вокруг Project Reactor и реактивным программированием на бэкенде. Однако, на мой взгляд, решение многих повседневных задач остается не раскрытым. В связи с этим мне хотелось бы поделиться некоторыми находками, которые помогут лучше понять как использовать этот подход на бэкенде, написанном на Java.
-
Включаем exactly once delivery в kafka приложении
ruskafkaВ сети очень много информации о kafka, особенно теоритических разборов тех или иных ее возможностей. Одной из возможностей kafka является exactly once delivery, которая появилась в ней начиная с версии 0.11. По умолчанию exactly once delivery является выключенной. Чтобы ее использовать, необходимо конфигурировать как Producer (приложение, которое отправляет сообщения), так и Consumer (приложение, которое читает сообщения). Далее я хочу разобрать, как именно это сделать.
-
Реактивный REST контроллер в Spring
rusjavaspring-bootopen-apireactiveВ spring boot, начиная с версии 2.0, добавили возможность использовать реактивный подход для некоторых сценариев. Например, стало возможным использовать реактивные драйверы для некоторых баз данных и для REST контроллеров. В сети полно примеров, где показано как реализовать REST контроллер самому. Однако, бывают ситуации, когда контроллер и модель должны удовлетворять какому-либо контракту, например, описанному с помощью open api. В этой статье я покажу, как сгенерировать реактивный контроллер при помощи openapi-generator-maven-plugin.
-
Динамическая конфигурация bean в spring
rusjavaspring-bootИногда необходимо, чтобы приложение имело возможность динамически создавать бины опираясь на файл конфигурации. В частности, это может быть полезно, когда в конфигурационном файле у нас описаны настройки для разных версий клиентов, которые будут обращаться к внешним сервисам по одному и тому же протоколу, но через разные URL.
-
Агрегированные запросы в MongoDb через spring
rusjavaspring-bootmongoDbЧасто при работе с базой данных (БД) нам нужно получить данные, которые были обработаны и представлены так, как того требует логика программы. В большинстве случаев при работе с spring можно обойтись JPA репозиториями. Однако, если нам необходимо получить результат группировки, то JPA репозитории нам не подойдут, так как они не предоставляют такой операции. В простейшем случае можно обойти эту проблему проаннотировав необходимый метод репозитория аннотацией @Query, в остальных приходится писать запрос в БД вручную. В этой статье мы попробуем составить несколько таких запросов в MongoDb.
-
Динамический scheduling в spring boot с помощью триггеров
rusjavaspring-bootSpring boot предоставляет удобную возможность по управлению задачами, которые должны быть выполнены через заданные промежутки времени. Для этого достаточно воспользоваться аннотацией @Scheduled.