Как сделать непрерывное обновление с нулевым временем простоя - PullRequest
0 голосов
/ 23 января 2019

Можно ли выполнить обновление версии работы с нулевым временем простоя?

Может быть, с конфигурацией HA ? то есть заменив резервное задание на обновленное, затем отмените мастер, после чего standby (обновленный) станет master, а затем загрузите новое обновленное задание вместо master, которое мы отменили на предыдущем этапе, для того, чтобы поддерживать HA. Возможен ли этот сценарий? Существуют ли другие сценарии, которые могут достичь нулевого времени простоя при обновлении версии задания?

1 Ответ

0 голосов
/ 24 января 2019

Я не думаю, что режим Flink HA действительно подходит для обновлений с нулевым временем простоя. Режим HA гарантирует, что неисправный Jobmanager может быть заменен без потери информации о состоянии, но это не HA в том смысле, что «недоступность» все еще возникает между временем, когда основной Jobmanager выходит из строя и вторичный Jobmanager вступает во владение. (Или в случае таких систем, как Kubernetes, когда одинокий Jobmanager не проходит проверку работоспособности и заменяется)

Для некоторых типов работ возможны обновления без простоев, но они не поддерживаются самим Flink. Например, если ваше задание выводится в индекс Elasticsearch, вы можете вызвать обновленное задание из точки сохранения параллельно с исходным, но записать в новый индекс, и, когда оно выполнено, переключить клиентов (или псевдоним индекса Elasticsearch). для ссылки на новый индекс.

Другой метод, который я рассмотрел, но никогда не пробовал, - это встроить в ваши приложения способ настройки флага, указывающего, когда начинать или прекращать передачу данных. Таким образом, вы можете обновить конфигурацию исходного задания, чтобы отбрасывать (не пересылать в приемник) любые оконные данные, начиная с некоторой отметки времени в ближайшем будущем, а затем запускать обновленное задание и настраивать его на выдачу первого окна в это время.

Встроенная поддержка «хэндов» без простоев - это функция, которую было бы неплохо иметь во Flink для многих сценариев использования.

...