У нас проблема с одним из наших кластеров kafka. У нас 6 узлов с v1.0, все темы имеют коэффициент репликации 3 и 10 разделов на тему, чего нам показалось достаточно.
Из-за сбоя питания 3 узла на какое-то время вышли из строя, и теперь у нас есть МНОГО тем, которые, как сообщается, имеют недостаточно реплицированные разделы.
Единственное решение (и, кажется, более приемлемое), которое мы видели на форумах, - это выполнить непрерывный перезапуск, пока все не будет волшебным образом исправлено, но я надеюсь, что для этого есть лучшее решение. Кто-нибудь излечился от этой ситуации? Сеть или процессор не должны вызывать проблем с синхронизацией, так как они даже не достигают пределов.
Большое спасибо!
Лучше всего позволить Kafka обрабатывать это автоматически, обычно с помощью инструмента переназначения темы. https://www.google.no/search?q=kafka+partition+reassignment+tool
Вы также можете принудительно перераспределить, используя все свои темы и записывая все сообщения в новую тему, имеющую те же настройки, но немного другое имя, чем текущие темы.
Наконец, мы смогли восстановить кластер, удалив вручную многие из сломанных, поэтому мы уменьшили количество недостаточно реплицированных разделов с примерно 4600 до примерно 1k.
После этого, а также имея все они только в 2 из узлов, мы решили выполнить заказанное завершение работы на обоих узлах, и после этого репликация началась снова.
Я предполагаю, что есть какая-то ошибка, из-за которой кафка перестает реплицироваться с узлов, но это помогло.
Обновлять:
После того, как кластер станет стабильным, вы также можете попытаться сбалансировать разбалансированные разделы между доступными брокерами. По моему опыту, лучше создавать небольшие файлы ребалансировки вместо того, чтобы перебалансировать весь кластер, поскольку он обычно застревает в середине процесса (по крайней мере, в старых версиях)
проверьте, помогает ли это вам. stackoverflow.com/questions/51491152/…