Я хотел бы использовать Kafka для выполнения ограниченной пакетной обработки , когда программа будет знать, когда она обрабатывает последнюю запись.
Пакетная:
- Чтение плоского файла
- Отправить каждую строку как сообщение для Кафки
Слушатель Кафки:
- Потребляет сообщение от Кафки
- Вставить запись в базу данных
- Если это последняя запись, отметьте пакетное задание как выполненное в базе данных.
Один из способов, вероятно, состоит в том, чтобы использовать один раздел Kafka, предполагая, что FIFO (First In First Out) гарантированно, и заставить пакетную программу отправить флаг isLastRecord .
Однако это означает, что обработка будет ограничена однопоточным (однопользовательским).
Вопрос
Есть ли способ достичь этого с помощью параллельной обработки, используя несколько разделов Kafka?