Я хотел бы использовать событие из темы Кафки, добавить его в базу данных, выполнить несколько запросов, удалить событие из базы данных и выдать результаты запроса обратно в тему.
Это похоже на то, что было задано в Внешние системные запросы при обработке Kafka Stream
В качестве примера, я мог бы выполнить запросы геолокации к пространственной БД, где я сначала вставил бы координату из полученного сообщения, выполнил поиск для вычисления некоторой окрестности, удалил координату из БД и направил вниз по потоку сообщение результата, содержащее окрестности.
Я мог бы использовать трансформер для выполнения запросов и пересылки обогащенных сообщений нисходящего потока, как это было предложено в первом решении в предыдущей ссылке. Однако при этом у меня возникают некоторые проблемы с производительностью, связанные с KafkaStream, так как это приводит к запросу на событие для Db.
- Могу ли я использовать некоторый шаблон потока, такой как оконный поток, для пакетирования нескольких координат вместе и выполнения только одного запроса на пакет?
- Как KafkaStreams будет реагировать в случае сбоя БД?
- Не застрянет ли поток KafkaStream?
- Есть ли тайм-аут, когда потоковое приложение не будет работать?
- Когда БД вернется, поток KafkaStream восстановится нормально?
- Какими будут угловые корпуса такого дизайна?
- Было бы лучше разработать внешнюю службу для выполнения БД
запросить с KafkaConnect или alpakka и прочитать запросы из темы
и написать ответы в другой теме?