Я работаю над конвейером, который читает сообщения от Kafka с использованием KafkaIO, и я смотрю на параметр commitOffsetsInFinalize () и класс KafkaCheckpointMark.
Я хочу достичь хотя бы раз семантики доставки сообщенийи хотим быть уверены, что смещения зафиксированы в Kafka после их записи в какой-то приемник.
Глядя на интерфейс CheckpointMark , неясно, когда ожидается завершение.
Зависит ли это от бегуна, чего ожидать при выполнении на DataflowRunner?
И чтение KafkaIO.Read Javadoc на commitOffsetsInFinalize также не дает ясности в моем понимании, особенно фразы
Но он не предоставляет жестких гарантий обработки
Вопрос: Для чего нужен контракт в модели Beam, когда контрольные отметки должныбудет завершено, есть ли?