Ты (не) в моём коде (СИ). Страница 17

— Спасибо, мы подумаем.

Пятый путал Kafka с RabbitMQ, а на вопрос про оркестрацию уверенно рассказал про Docker Compose. Я прикрыла глаза и тихо выдохнула через нос. Женя продержался ещё две минуты из вежливости, потом поблагодарил и сбросил.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

— Как лечить?

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

Вот это «надо смотреть» было тем, чего не было у остальных. Не «я знаю ответ», а «зависит от ситуации, давайте разберёмся». Я посмотрела на Женю. Он смотрел на меня. Мы поняли одновременно.

Женя задал ещё пару вопросов, уже спокойнее, уже не проверяя, а скорее прощупывая, как с ним будет работаться. Парень где-то не знал точного термина, говорил «эта штука, которая...» и описывал своими словами. И описывал правильно.

— Зарплатные ожидания? — спросил Женя.

Парень назвал цифру. Нормальную. Глаз у Жени не дёрнулся.

Кажется, это джекпот?

— Спасибо, — сказал Женя. — Мы вернёмся с обратной связью в ближайшее время.

Созвон закрылся. Женя посмотрел на меня. Я на него.

— Ну? — протянула я вопросительно.

— Не сеньор.

— Не сеньор, — согласилась я. — Но крепкий мидл, который думает головой, а не гуглом. И главное, что он не врёт. Где не знает, говорит прямо и копает в правильную сторону.

Женя побарабанил пальцами по столу. Но уже не по часам, а просто так, от нетерпения.

— Берём? — словно ему надо было убедиться в происходящем, спросил Женя, уже зная ответ.

— Бери, пока не ушёл, — сказала я. — Такие долго не сидят.

— Хах, да, пожалуй. Это надо отметить, как думаешь?

Из коридора донеслись голоса.

— Лёш, ну всё уже, можно? — протянула Лена капризно, почти по-детски. — Я с утра ничего нормального не ела.

— Пицца — это нормально, — отозвался он ровно.

— Пицца в десять утра — это не обед.

— Это был очень поздний завтрак.

— Лёша.

— Лена.

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

— Всё, закончили? — спросила Лена, обводя нас взглядом.

— Только что, — сказал Женя.

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

— Она терпеливо ждала, — подтвердил Лёша без интонации и открыл холодильник.

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

Так. Хорошо бы соорудить небольшой перекус.

— Сейчас что-нибудь сделаю, — сказала, вставая.

— Тая, ты святая, — объявила Лена. И тут же добавила: — Давай я помогу. Серьёзно. Что нарезать?

Инициатива казалась подозрительной, но удивиться я не успела. Лена уже подскочила, засучив рукава Лёшиного свитера.

— Овощи, — сказала я. — Перец, помидоры, зелень. Доска слева, нож в верхнем ящике.

— Знаю, где нож, — вскинулась Лена.

Я поставила сковороду, достала мясо. Лена рядом старательно резала перец, высунув кончик языка от усердия. Выглядело даже трогательно.

— Кстати, — Лена повернулась ко мне, не переставая резать, — мы вчера нашли потрясающее место. Такой бар, знаете, с живым джазом. Ну, почти джазом. Лёш, как называлась та группа?

— Не помню, — сказал он спокойно.

— Ну как не помнишь? Ты ещё сказал, что у них басист приличный.

— Слушал, — он чуть улыбнулся. — Басист, правда, приличный.

— Он чем-то твоего Юру напомнил. — Лена повернулась ко мне. — Он же на басу играл?

Я не сразу ответила.

— Играл, — сказала я.

— Вот, точно что-то такое. — Лена уже переключилась, не заметила паузы. — Там такая атмосфера, просто «вау». Свечи, кирпичные стены. Я сделала сторис, но потом удалила, потому что камера не передаёт. Это надо чувствовать.

Лёша молча налил себе ещё воды. Она продолжала рассказывать быстро, с деталями, перескакивая: какой-то коктейль, какая-то девушка за барной стойкой в смешной шляпе, как Лёша с барменом разговорился про виниловые пластинки.

— Представляете, у них там коллекция, штук двести. Лёша завис у стойки минут на двадцать, я думала, он переехал.

Лёша усмехнулся одним уголком рта. Тихо, тепло. Не ей, а скорее воспоминанию.

— Ай! — высокой нотой прозвенел голос Лены.

Она отдёрнула руку. На указательном пальце выступила тёмная капля.

— Ну вот. — Сестра скривилась, разглядывая порез. Интонация из весёлой стала вдруг по-детски расстроенной. — Не выходит из меня хозяюшка. От слова совсем.




Перейти на страницу:
Изменить размер шрифта: