#apache-flink #flink-streaming #stream-processing
#apache-flink #flink-streaming #потоковая обработка
Вопрос:
Я создаю класс, который помогает отслеживать числовую производительность нескольких операторов. Моя текущая идея сделать это — создать метод, подобный update()
, и вызывать этот метод каждый раз, когда операторам нужно что-то обновить. Однако это означает, что мне нужно создать объект, который виден каждому отдельному оператору, которого я хочу отслеживать. Возможно ли это? Или есть ли какие-либо лучшие решения? Спасибо!
Ответ №1:
Если вы знаете, что все операторы выполняются в одной JVM (у вас есть один диспетчер задач), тогда вы можете создать синглтон, который все операторы могут использовать для регистрации активности.
Если это кластер Flink с несколькими TM, то каждый из них работает в своей собственной JVM, поэтому вам придется использовать какую-либо распределенную систему для записи этого действия.
Самым простым решением было бы использовать ведение журнала, а затем последующую обработку журналов для извлечения необходимой вам информации.
Или вы могли бы использовать встроенные метрики Flink для сбора необходимой вам информации.