У меня есть несколько вопросов, касающихся потоков Kafka и того, как они работают, у меня есть опыт работы с общей парадигмой потребителей и производителей Kafka, однако я впервые пытаюсь использовать потоки Kafka.
Вопросы:
- В общей потребительской модели Kafka мы подписываемся на тему и начинаем потреблять из раздела, для простоты, скажем, у нас есть 1 раздел и 1 потребитель, теперь, если мы хотим увеличить нашу обработку, мы увеличиваем числоразделов и дополнительно добавить больше потребителей, как это работает в Kafka Streams, если мы увеличиваем разделы, как мы должны масштабировать приложение, нам нужно добавить больше машин или нам нужно сделать что-то еще?
- Когда я использую данные через потребителей Kafka, я могу в конечном итоге что-то делать с сообщениями, например, я могу запросить API загрузить файл и записать в NFS и переслать сообщение или записать значение входящего сообщения в базу данных, а затемпереслать уведомление в другую тему Кафки,Как решается тот же вариант использования, когда мы не следуем парадигме
KAFKA -> KAFKA
, а вместо этого имеем KAFKA -> PROCESS(STORE IN DB) -> KAFKA
, может ли Kafka Streams даже решить этот вариант использования? - Наконец, как обрабатываются исключения и каксмещений удалось.В постоянно работающих производственных системах, где существует бесконечный поток сообщений, которые в случае каких-либо исключений поступают, скажем, из-за какого-либо сбоя в сети, мы отключаем потребителей и проводим чистую доставку.Как добиться того же с приложением обработки Kafka Stream?