Книга Ты (не) в моём коде, страница 37 – Таисья Тишь

Авторы: А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ч Ш Ы Э Ю Я
Книги: А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
Бесплатная онлайн библиотека LoveRead.ec

Онлайн книга «Ты (не) в моём коде»

📃 Cтраница 37

Женя откинулся на спинку стула, потёр лицо руками. Пальцы правой руки легли на часы, и указательный палец начал выстукивать по циферблату мелкую дробь. Не думаю, что Женя это замечал.

— Перерыв? — спросил он с надеждой.

— Да, давай, — согласилась я и пошла ставить чайник.

Пока закипала вода, Женя молчал, глядя в стол. Палец всё ещё цокал по стеклу часов.

— Ты была права, — сказал он наконец. — Даже хорошие резюме. Сразу тележкой, а результат — ноль на массу.

Я поставила перед ним кружку.

— Подумай об этом как о стихийном бедствии. Его не избежать, его надо пережить. Раз я права, значит, нужный человек найдётся. Со временем. Но если не перебрать хренову тучу кандидатов, ничего не выйдет.

Он хмыкнул, но палец, наконец, остановился.

— Сколько у нас ещё сегодня?

— Двое. Готов? — спросила я.

Женя кивнул и включил созвон.

13.2 Правильный кандидат. Тая

На экране появился парень лет тридцати, может, чуть старше. Короткая стрижка, простая футболка, за спиной обычная комната, без модных постеров и искусственных фонов. Представился спокойно, без заученной самопрезентации.

Женя начал по скрипту. Первые вопросы парень брал ровно, не блистал терминами, но и не плыл. Отвечал, как человек, который делал руками, а не читал про это на хабре.

Потом мы дали парню кейс. Тот самый, на котором второй кандидат сыпался в тишину.

— Легло три ноды из пяти, часть данных не реплицировалась. Что делаешь?

Парень помолчал. Не растерянно, а так, как молчат, когда прикидывают порядок действий.

— Сначала смотрю, какие именно ноды легли, мастер или воркеры. Если мастер жив, проверяю статус подов на оставшихся двух. Если данные не реплицировались, значит, скорее всего, реплика-фактор был меньше трёх или ноды выпали до того, как синк завершился.

Женя чуть подался вперёд.

— Допустим, мастер жив, но два воркера из трёх недоступны. Трафик идёт.

— Тогда первым делом надо кордон на упавшие ноды, чтобы планировщик не пытался туда ничего раскидывать. Дальше смотрю, что с подами, которые были на тех нодах. Если есть PV, то проверяю, переехали ли данные. Если нет, руками не полезу, подниму ноды и дам кластеру самому разрулить. Он для этого и нужен.

Я написала Жене в чат: «Копает, куда надо».

— А если не разрулит? — спросила я вслух.

Парень перевёл взгляд на меня, не дёрнулся, не растерялся.

— Тогда надо смотреть логи. Конкретно — события кластера и статус PVC. Если всё совсем грустно и автоматика не справляется, полез бы в документацию, потом к коллегам. Но копать надо в сторону storage class и provisioner, потому что обычно там и зарыта собака.

Женя откинулся на спинке стула. Палец по часам не стучал.

— Хорошо. Теперь Kafka. У тебя дубли в топике, консьюмер вычитывает одно и то же. Почему?

— Семантика at-least-once, скорее всего. Продюсер отправил, не дождался подтверждения, отправил повторно. Или консьюмер сделал обработку, но не закоммитил оффсет и при рестарте пошёл по второму кругу.

— Как лечить?

— Идемпотентный продюсер, enable.idempotence. На стороне консьюмера надо коммитить оффсет после обработки, не до. Если нужен exactly-once по-настоящему, транзакционный продюсер плюс read_committed на консьюмере. Но это не бесплатно, производительность просядет. Надо смотреть, насколько критичны дубли для конкретного кейса.

Вход
Поиск по сайту
Ищем:
Календарь