В настоящее время имеет работу, которая использует шаблон состояния вещания, подключая транслированный поток к потоку событий, чтобы обеспечить контекст для принятия решений. Транных данных содержит относительно небольшие объекты и представляют собой поток средней пропускной способности. В размерах (поскольку он хранится в памяти) - это итерация по всему состоянию в методе ProcessBroadcastElement , удаляя элементы, которые соответствуют определенной квалификации на основе конкретного объекта Свойства. < /p>
Для нормальной работы это работает нормально и, кажется, не имеет силы напряжения. Тем не менее, было несколько ситуаций, когда состояние необходимо очистить и перегружать сотни тысяч объектов потока вещания (в настоящее время составляет около 15 МБ * 2 параллельных экземпляров в размере контрольной точки). В этих ситуациях задание сразу становится на 100% занятым оператором совместного обработки, обеспечивая 100% обратного давления на обоих источниках данных. /p>
[*] Переход к MapState < /code> для передаваемых данных и потока событий с ключом, чтобы я мог получить доступ к состоянию в богатой функции карты и очистить состояние там, если Необходимый
Переход к MapState для передаваемых в настоящее время данных и потока событий с ключом, чтобы я мог получить доступ к состоянию в функции богатой карты и очистить полное состояние в интервале таймера В функции процесса с ключом в потоке событий < /li>
Реализуйте что -то похожее на пример подключенных потоков здесь: https://nightlies.apache.org/flink/flin ... #connected streams, выводя оба потока от одного и того же идентификатора и сохраняя данные вещания в карту для использования, когда Объект потока событий прибывает < /li>
< /ol>
Ищу отзывы о том, какой вариант является наиболее «правильным» шаблоном для использования для этого ситуация, с которой было бы наиболее эффективным.
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-in-flink