Эффективная очистка трансляционного состояния в FlinkJAVA

Программисты JAVA общаются здесь
Anonymous
Эффективная очистка трансляционного состояния в Flink

Сообщение Anonymous »

В настоящее время имеет работу, которая использует шаблон состояния вещания, подключая транслированный поток к потоку событий, чтобы обеспечить контекст для принятия решений. Транных данных содержит относительно небольшие объекты и представляют собой поток средней пропускной способности. В размерах (поскольку он хранится в памяти) - это итерация по всему состоянию в методе ProcessBroadCastElement , удаляя элементы, которые соответствуют определенной квалификации на основе конкретных свойств объекта.
для Нормальная работа, это работает нормально и, похоже, не имеет силы напряжения. Тем не менее, было несколько ситуаций, когда состояние необходимо очистить и перегружать сотни тысяч объектов потока вещания (в настоящее время составляет около 15 МБ * 2 параллельных экземпляров в размере контрольной точки). В этих ситуациях задание сразу становится на 100% занятым оператором совместного обработки, обеспечивая 100% обратного давления на обоих источниках данных. /p>
  • Переход к MapState < /code> для передаваемых данных и потока событий с ключом, чтобы я мог получить доступ к состоянию в богатой функции карты и очистить состояние При необходимости
  • Переход к mapstate для передаваемых данных в настоящее время и потока событий с ключом, чтобы я мог получить доступ к состоянию в функции богатой карты и очистить полное состояние на Интервал таймера в функции процесса с ключом в потоке событий
  • Реализуйте что-то похожее на пример подключенных потоков здесь: https://nightlies.apache.org/flink/flink-docs-stable/ Docs/Learn-Flink/ETL/#Подключенные потоки, подключая оба потока от одного и того же идентификатора и сохраняя данные вещания в MapState для использования, когда объект потока событий прибывает


Подробнее здесь: https://stackoverflow.com/questions/794 ... e-in-flink

Вернуться в «JAVA»