Привет, у меня вопрос к экспертам :) Кафка старая 2.0.0

при добавлении нового сервера не меняли настройки для репликации __consumer_offsets топика (системного) но при апдейте я тут решил таки его привести в состояние репликации.

Т.к кафка старая не получилось все сделать через утилиты (CMAK,kafkactl) и собственно выбрал стандартный путь по оф документации, подготовил json и bash скрипт в директории kafka - примеры json могу скинуть.

и получилось что __consumer_offsets (в нем 50 партиций) размазался на 2 брокера, но не так как наверное должно быть..
Partition Latest Offset Leader Replicas In Sync Replicas Preferred Leader? Under Replicated?
0 9 0 (0,1) (0,1) true false
1 34 1 (1,0) (0,1) true false
2 3 0 (0,1) (0,1) true false
т.е у меня Replicas размазались на два сервера с чередованием (0,1) и (1,0) но в In Sync Replicas все осталось только (0,1)

будет ли проблемой если лидер выключится (т.к топик системный в такой конфигурации) и как починить не убивая кафку?

16 ответов

89 просмотров

Вообще для __consumer_offsest задается репликация в offsets.topic.replication.factor, в конфиге брокера. Но это, ясно дело, через рестарт. Я вообще удивлен, что кафка дала с ним что-то сделать через консоль

Aliaksei- Автор вопроса
Anton Churkin
Вообще для __consumer_offsest задается репликация ...

grep offsets /opt/kafka/config/server.properties # The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" offsets.topic.replication.factor=1 т.е правильнее без json просто поменять это число на кол-во брокеров и перезапустить каждый?

Anton Churkin
Вообще для __consumer_offsest задается репликация ...

А чо не-то, топик как топик. И, кстати, задание проперти и рестарт как раз ни к чему не приведёт, эти значения применяются только при создании топика. Хотите изменять уже созданный - изменяйте как и любой другой.

Мне кажется, что тут нет никакой проблемы. Я бы попробовал поднять стенд, воспроизвести на нём и проверить сценарий, которого вы опасаетесь. По идее, всё должно отработать нормально.

Вячеслав
А чо не-то, топик как топик. И, кстати, задание пр...

хз, помнится я как-то попробовал через cmak накинуть, получил отлуп. Но подробностей не помню. Надо потестить, может и ок.

Aliaksei- Автор вопроса
Вячеслав
А чо не-то, топик как топик. И, кстати, задание пр...

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

Aliaksei- Автор вопроса
Anton Churkin
хз, помнится я как-то попробовал через cmak накину...

через него не все работает, у меня главная задача была увеличить кол-во реплик и он тупо ничего не делает, а kafkactl говорит про ошибку в API (хотя я и пробовал какуюто друвнюю версию)

Да, лучше поменять, но это скорее "для потомков" и в целом приведения всего в порядок, практического эффекта это не даст (опять же, насколько я помню мои собственные приключения по переходу с однонодовой инсталляции на кластер с добавлением нод на ходу).

Вячеслав
Да, лучше поменять, но это скорее "для потомков" и...

Когда игрался с этим топиком - такие же результаты были: для существующего - через json, а строчка конфига для консистентности на случай если вдруг что-то произойдет

Приоритет при выборе лидера - в колонке Replicas (собственно у вас даже колонка есть - Prefered leader). Insyncreplicas - тут порядок не так важен (не уверен, но либо когда реплика стала инсинк, либо когда была создана). Если у вас вылетит брокер, лидером станет другая. Но помните, что есть доступность и надёжность. С 2 брокерами и 2 репликами чего-то одного у вас точно не будет при вылете 1 брокера

Aliaksei- Автор вопроса
Sergey Andreyev
Приоритет при выборе лидера - в колонке Replicas (...

Окружение тестовое но немного не понял почему будет проблема. Если у меня есть 1 патриция и у нее фактор репликации 2 то копия должна храниться на соседнем брокере, и при отсутствии хоста, он может стать лидером и принимать/отдавать сообщения. Вариант с 50партициями есть только у служебного топика. Но проектные топики могут быть разделены на 2 партиции и с фактором репликации 2, т.е мне казалось что это должно обеспечить продолжение работы если вдруг хост будет перезапущен или умрет или я его отключу для техработ например.

Так при любом количестве реплик может случиться. Просто не стоит в in-sync одну держать, минимум две, остальное - depends on, нет?

С 2 репликами на обоих стульях не получится усидеть

Sergey Andreyev
С 2 репликами на обоих стульях не получится усидет...

Ну так и с 3-мя при отвале двух нод уйдем в рид-онли

Evg Resh
Ну так и с 3-мя при отвале двух нод уйдем в рид-он...

Но с 3 нодами можно настроить так, что при потере одного брокера можно сохранить доступность на запись и без потери данных. И мне показалось, что автор исходного поста хотел эти свойства с 2 репликами, чего достигнуть не получится

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

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

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