Я изучаю и оцениваю Sparks и Flink, прежде чем выбрать одну из них для проекта, который у меня есть.
В своей оценке я придумал следующие простые задачи, которые я могу понять, как реализовать это в обоих фреймворках.
Скажем так
1- / У меня есть поток событий, которые представляют собой просто информацию о том, что какой-то элемент был изменен где-то в базе данных.
2- / Мне нужно для каждого из этих событий запрашивать базу данных, чтобы получить новую версию элемента
3- / применить некоторую трансформацию
4- / подключаемся к другому БД и пишем, что результаты.
Мой вопрос здесь следующий:
Используя Flink или Sparks, как можно убедиться, что вызовы баз данных обрабатываются асинхронно, чтобы избежать нехватки потоков?
Я пришел из scala / Akka, где обычно мы избегаем блокирующих вызовов и используем future все способы для такого рода ситуаций. Поток Akka обеспечивает такой уровень детализации для потоковой обработки, например Интеграция потока с внешней службой. Это позволит избежать истощения нитей. Пока я жду операции io, поток можно использовать для чего-то еще.
Короче говоря, я не понимаю, как работать с фьючерсами в обоих фреймворках.
Так что я считаю, что каким-то образом это можно воспроизвести с помощью обоих фреймворков.
Может ли кто-нибудь объяснить, как это должно быть обработано во Flink или Sparks.
Если это не поддерживается из коробки, есть ли у кого-нибудь опыт включения этого каким-либо образом.