Почему Kafka временно добавляет реплики при расширенииPartitions

Вопрос или проблема

В kafka 2.6.1 есть топик под названием test с двумя репликами и 30 партициями. Теперь партиции расширены до 40. Однако было обнаружено, что емкость диска изменяется в процессе расширения. После проверки топика оказалось, что есть только 30 оригинальных партиций. Почему вместо двух реплик стало три? Каков механизм?

Просто дайте мне идею

Ответ или решение

Когда в Apache Kafka расширяется количество партиций в теме, происходит несколько важных шагов в процессе добавления реплик. Давайте детально рассмотрим механизм, связанный с изменением копий партиций и расширением.

Объяснение механизма

  1. Увеличение количества партиций: Когда вы расширяете количество партиций для конкретной темы, например, с 30 до 40, Kafka вызывает процесс распределения новых партиций. Это обеспечивает более равномерную загрузку и возможность параллельной обработки сообщений.

  2. Добавление реплик: Когда вы увеличиваете количество партиций в теме, Kafka может временно добавить реплики, чтобы гарантировать, что новые партиции будут доступны с нужным уровнем доступности и отказоустойчивости. Например, если у вас была установлена репликация на уровне 2, при увеличении партиций до 40 Kafka может временно создать дополнительные реплики, чтобы не снижать производительность и доступность.

  3. Распределение нагрузки и балансировка: После добавления новых партиций и временных реплик Kafka начинает процесс балансировки, чтобы равномерно распределять данные и нагрузку между всеми доступными брокерами. Это важно для избежания узких мест на определённых брокерах.

  4. Фаза перестроения: В процессе добавления новых партиций и реплик, Kafka может временно не отображать изменения в метаданных темы, пока не завершится процесс перестроения. Это может быть причиной того, что вы можете не увидеть новых партиций сразу после изменения конфигурации.

  5. Изменение конфигурации: После завершения операции увеличения партиций и реплик, Kafka возвращается к нормальной работе с обновлённой структурой данных. В результате у вас будет 40 партиций, каждая из которых будет иметь правильное количество реплик, как было задано исходно (например, 3 копии, если вы настроили это после изменения).

Причины изменения дискового пространства

Изменение дискового пространства при увеличении количества партиций связано с несколькими факторами:

  1. Аллокация ресурсов: При создании новых партиций и добавлении реплик Kafka выделяет дополнительные ресурсы, что может привести к увеличению использования дискового пространства в зависимости от размера сообщений и конфигурации хранения.

  2. Кэширование и временные файлы: В процессе перенастройки и копирования данных может происходить рост временных файлов, особенно если исходные партиции перетекают на другие брокеры в процессе репликации.

  3. Политики хранения: Netflix Kafka и другие системы могут использовать разные политики хранения, которые влияют на то, как данные хранятся и как управление ресурсами, что также может увеличивать использование дискового пространства во время процесса.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...