9d6f838692
- добавить надёжные настройки Kafka producer - публиковать один record из RoutePassportOutboxEntity с timeout - сериализовать JsonNode payload напрямую как JSON object - пробрасывать ошибки Kafka send вызывающему коду - обновить тесты publisher и producer config
route-passport-kafka-consumer
Минимальный сервис на Kotlin + Spring Boot, который:
- слушает Kafka topic;
- получает в сообщении JSON паспорта маршрута;
- парсит JSON в DTO;
- больше ничего не делает.
Что внутри
RoutePassportConsumerApplication— точка входа Spring Boot.RoutePassportMessageListener— Kafka listener.RoutePassportJsonParserService— сервис парсинга входного JSON в DTO.RoutePassportDto— итоговый DTO изpcp-types-lib.RawPassportEnvelopeDtoи связанныеRaw*DTO — модель входного JSON изpcp-types-lib.
Как запустить
- Поднять Kafka.
- Указать адрес брокера в
application.ymlили через переменную окруженияKAFKA_BOOTSTRAP_SERVERS. - При необходимости указать topic через
APP_KAFKA_TOPIC. - Запустить приложение:
./gradlew bootRun
Сообщение, которое ожидает сервис
Сервис ожидает, что value Kafka-сообщения — это JSON того же формата, что и src/test/resources/passport_example.json.
Поле geometry должно приходить строкой в формате WKT.
Примечание
Поскольку в запросе был указан просто «слушает очередь», реализация сделана через Kafka topic как наиболее типичный вариант для стека Kotlin + Spring и Kafka-ориентированного сервиса.