Какая корреляция в потоках / таблицах kafka, глобальных таблицах, борках и разделах? - PullRequest
0 голосов
/ 20 апреля 2020

Я изучаю потоки кафки, таблицы, globalktable et c. Теперь я путаюсь с этим.

Что такое GlobalKTable?

Но в целом, если у меня есть топи c с N-разделами и одним потоком kafka, после того, как я отправлю некоторые данные на топи c, сколько у меня будет потока (раздела?)? Я сделал несколько попыток, и я заметил, что матч 1: 1. Но что, если я сделаю topi c, реплицируемый на разных брокеров? Спасибо всем

1 Ответ

1 голос
/ 21 апреля 2020

Я постараюсь ответить на ваши вопросы, поскольку они перечислены здесь.

В GlobalKTable есть все разделы, доступные в каждом экземпляре вашего приложения Kafka Streams. Но KTable разделен на все экземпляры вашего приложения. Другими словами, все экземпляры вашего приложения Kafka Streams имеют доступ ко всем записям в GlobalKTable; следовательно, он используется для большего количества данных c и больше используется для поиска записей в соединениях.

Что касается топи c с N-разделами, если у вас есть одно приложение Kafka Streams, оно будет использовать и работать со всеми записями из ввода topi c. Если бы вы раскручивали другой экземпляр вашего потокового приложения, то каждое приложение обрабатывало бы половину количества разделов, что обеспечивало бы более высокую пропускную способность из-за распараллеливания работы.

Например, если у вас есть ввод topi c A с четырьмя разделами и одним приложением Kafka Streams, затем одно приложение обрабатывает все записи. Но если вам нужно было запустить два экземпляра одного и того же приложения Kafka Streams, то каждый экземпляр будет обрабатывать записи из 2 разделов, рабочая нагрузка распределяется на все запущенные экземпляры с одинаковым идентификатором приложения.

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

Надеюсь, это кое-что прояснит.

-Bill

...