36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# 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`.
|
|
|
|
## Как запустить
|
|
|
|
1. Поднять Kafka.
|
|
2. Указать адрес брокера в `application.yml` или через переменную окружения `KAFKA_BOOTSTRAP_SERVERS`.
|
|
3. При необходимости указать topic через `APP_KAFKA_TOPIC`.
|
|
4. Запустить приложение:
|
|
|
|
```bash
|
|
./gradlew bootRun
|
|
```
|
|
|
|
## Сообщение, которое ожидает сервис
|
|
|
|
Сервис ожидает, что value Kafka-сообщения — это JSON того же формата, что и `src/test/resources/passport_example.json`.
|
|
Поле `geometry` должно приходить строкой в формате WKT.
|
|
|
|
## Примечание
|
|
|
|
Поскольку в запросе был указан просто «слушает очередь», реализация сделана через Kafka topic как наиболее типичный вариант для стека Kotlin + Spring и Kafka-ориентированного сервиса.
|