Большая мощь Beam проистекает из его расширенных возможностей работы с окнами, но это также немного сбивает с толку.
Видя некоторые странности в локальных тестах (я использую rabbitmq для входного источника), где сообщения не всегда получали ack
d и исправив окна, которые не всегда закрывались, я начал копаться вокруг StackOverflow и базы кода Beam.
Кажется, существуют специфические проблемы с источником, когда устанавливаются именно водяные знаки:
(и другие). Кроме того, кажется, что существуют независимые понятия Checkpoint
с (CheckpointMark
с) в отличие от Watermarks
.
Так что я полагаю, что это вопрос из нескольких частей:
- Какой код отвечает за перемещение водяного знака? Кажется, это какая-то комбинация Источника и Бегуна, но я не могу на самом деле найти , чтобы понять это лучше (или настроить его для наших вариантов использования). Это особая проблема для меня, так как в периоды малого объема водяной знак никогда не продвигается, и сообщения не
ack
d - Я не вижу много документации относительно того, что концептуально является контрольной точкой / контрольной точкой (недокументация Beam-кода не обсуждает это). Как CheckpointMark взаимодействует с водяным знаком, если он вообще существует?