Как Flink распределяет работу при использовании потоков Kinesis? - PullRequest
0 голосов
/ 17 февраля 2020

В настоящее время я пытаюсь написать систему Flink, которая будет получать и обрабатывать данные в большом масштабе. Таким образом, я настроил его так, чтобы мой входной поток Kinesis Streams автоматически масштабировался на основе совершенно случайного ключа разделения, что означает, что данные в конечном итоге равномерно распределяются по всем моим фрагментам. (Позже я пользуюсь KeyBy, чтобы все идентичные идентификаторы устройств IoT заканчивались одной и той же задачей агрегатора.) Мои вопросы начинают играть, когда мое приложение Flink само масштабируется и теперь работает на разных машинах / узлах.

Вопросы:

1) Возможно ли взаимодействие двух менеджеров задач через машину / узлы? Допустим, один диспетчер задач читает сообщение, которое на самом деле должно быть обработано другим диспетчером задач на другом компьютере / узле. Будет ли оно просто пропущено? Я понимаю, что диспетчер задач это то, что он предназначен для «выполнения задач (или, более конкретно, подзадач) потока данных, а также буферизации и обмена потоками данных».

2) Как точно Flink масштабируется горизонтально, когда речь идет о потоках данных? Есть ли документация по этому поводу?

...