Apache Flink Kafka Разделение интеграционных разделов - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно реализовать ниже поток данных. У меня есть одна тема Кафка, которая имеет 9 разделов. Я могу читать эту тему с 9 уровнями параллелизма. У меня также есть 3 узла кластера Flink. Каждый из узлов этого кластера имеет 24 слота задач.

Прежде всего, я хочу распространить свою кафку, как, у каждого сервера есть 3 раздела, как показано ниже. Заказ не имеет значения, я только преобразовываю сообщение кафки и отправляю его в БД.

Во-вторых, я хочу увеличить степень параллелизма при сохранении NoSQL DB. Если я увеличу свой параллелизм 48, так как отправка БД является операцией ввода-вывода, она не потребляет ЦП, я хочу быть уверенным: когда Flink восстановит баланс моего сообщения, мое сообщение останется на том же сервере.

Есть какой-нибудь совет для меня?

Sample Flow

1 Ответ

0 голосов
/ 20 ноября 2018

Если вы хотите распределить свои читатели Kafka по всем 3 узлам, я бы рекомендовал запускать их с 3 слотами каждый и установить параллелизм источника Kafka на 9.

Проблема в том, что в данный моментневозможно управлять размещением задач, если доступно больше слотов, чем требуется для параллелизма.Это означает, что если у вас меньше источников, чем слотов, то может случиться так, что все источники будут развернуты на одной машине, оставляя другие машины пустыми (в зависимости от источника).

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

...