Возможно ли для нас создать объект, доступный для всех операторов в Apache Flink?

#apache-flink #flink-streaming #stream-processing

#apache-flink #flink-streaming #потоковая обработка

Вопрос:

Я создаю класс, который помогает отслеживать числовую производительность нескольких операторов. Моя текущая идея сделать это — создать метод, подобный update() , и вызывать этот метод каждый раз, когда операторам нужно что-то обновить. Однако это означает, что мне нужно создать объект, который виден каждому отдельному оператору, которого я хочу отслеживать. Возможно ли это? Или есть ли какие-либо лучшие решения? Спасибо!

Ответ №1:

Если вы знаете, что все операторы выполняются в одной JVM (у вас есть один диспетчер задач), тогда вы можете создать синглтон, который все операторы могут использовать для регистрации активности.

Если это кластер Flink с несколькими TM, то каждый из них работает в своей собственной JVM, поэтому вам придется использовать какую-либо распределенную систему для записи этого действия.

Самым простым решением было бы использовать ведение журнала, а затем последующую обработку журналов для извлечения необходимой вам информации.

Или вы могли бы использовать встроенные метрики Flink для сбора необходимой вам информации.