Доброго дня. Нуждаюсь в помощи. Один из брокеров "сдох", теперь

после восстановления и старта он не может зареплицировать одну из партиций в одном из топиков.
ERROR [ReplicaFetcher replicaId=2, leaderId=4, fetcherId=0] Found invalid messages during fetch for partition ******* kafka org.apache.kafka.common.errors.CorruptRecordException: Record is corrupt (stored crc = 4116316609) in topic ********
Replicas: 2,0,4 Isr: 4,0
Первый раз сталкиваюсь и не знаю что сделать. 2 брокер не может зареплицировать партицию. Лидер - 4 брокер, вот не могу понять, сообщение битое на двух ISR? Или только на одной? Как решить проблему? Была мысль, что если например 2 брокер пытается реплицироваться с 0, то удалить с диска на 0 брокере папку партиции, чтобы они оба зареплицировались с лидера. Но я не уверен, что это так.

8 ответов

22 просмотра
Ivgenich- Автор вопроса

node_exporter стоит, dmesg что на серверах пишет?

ну обычно удалить данные с битого брокера все - самый оптимальный вариант но сначала надо понять что с фс и с диском у данрного брокера

Ivgenich- Автор вопроса
Старый Хрыч
ну обычно удалить данные с битого брокера все - са...

Ресайзили датастор шареный в висфере и побили диск на одном брокере. Но битое сообщение оказалось не на том брокере, на котором диск задели. В общем что сделал - утащил с двух ISR реплик (включая лидера) log файлы партиции с битым "оффсетом", пробежался по ним с помощью kafka-dump-log - на log файле лидера на нужном оффсете дамп завалился с ошибкой. baseOffset: 10263161 lastOffset: 10263165 count: 5 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 4 isTransactional: false isControl: false position: 112197035 CreateTime: 1689005924609 size: 2775 magic: 2 compresscodec: lz4 crc: 4116316609 isvalid: false isvalid: false - вот оно. Сделал реассайн партиций ручками, чтобы в преферед лидер попал второй брокер из тех что ISR ну и вызвал leader election. После чего третья реплика перешла в инсинк и я руками грохнул папку партиции с битого брокера (бывшего лидера), после чего пнул его. Теперь все ок. Спасибо за идеи!

Ivgenich- Автор вопроса
Старый Хрыч
как я терпеть не могу эти шаренные диски

Я тут поел кое чего с ними уже несколько раз и просто забил на них болт, заказываю у инфры виртуалки с просто приаатаченными дисками под новые кафки, а не вот это вот CSI provisioned. Потому что от него пока лично у меня в опыте с кафкой было больше проблем, чем толку. Миграция между нодами мне нафиг не нужна, а отказоустойчивость у меня и так обеспечивается избыточностью тем, что брокеров 4+ и rf3, если даже нода наглухо уедет - я перебалансируюсь между оставшимися 3+ и пойду новую поднимать.

Ivgenich
Я тут поел кое чего с ними уже несколько раз и про...

меня вымораживают фанатики санов и насов, которые прикручивают вмтварь, делают шарвенные диски под бд и кафку,я столько с ними уже намучился....

Похожие вопросы

Обсуждают сегодня

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта