Опис послуги
ПерекладЯ дата-інженер, який живе всередині потоків подій, та Apache Kafka — основа майже всього, що я будую. Коли вашим сервісам потрібно спілкуватися друг з другом без очікування, коли аналітика повинна реагувати за секунди, а не в ночному батчі, або коли ви просто не маєте права втратити жодне повідомлення — це ровенько ті задачі, за які я беруся. Я проводив кластери Kafka від першого прототипу до бойового трафіку в мільйони подій на годину та добре знаю, де приховані гострі кути.
Моя робота починається з самих даних. Я моделюю предметну область як події, вирішую, що повинно лежати в топіку, а що ні, та підбираю ключ партиціонування так, щоб зберегти гарантії порядку та при цьому рівномірно розподілити навантаження по брокерам. Далі вибудовую сам потік: продюсери, налаштовані під пропускну здатність або під надійність, consumer-групи під розмір навантаження та завдання потокової обробки в Kafka Streams або Flink, які джойнять, агрегують та збагачують дані на льоту. До семантики exactly-once я ставлюсь серйозно: ідемпотентні продюсери та трансакційна запис, щоб повтор ніколи не перетворився в дублікат нижче по потоку.
Крім щасливого сценарію мене хвилює те, з-за чого не спиться по ночах. Я піднімаю schema registry, щоб продюсери та консьюмери розвивалися, не ломаючи один одного, будую пайплайни Kafka Connect для перекачування даних у бази та об'єктні сховища та назад, а також ставлю dead-letter-черги, моніторинг та алерти по лагу консьюмерів ще до того, як що-то попаде в прод. Якщо ви починаєте з нуля або рятуєте крихкий пайплайн, який втрачає повідомлення, — допоможу зібрати те, чому справді можна довіряти.
— Проектування кластера Kafka, стратегія топіків та партицій, налаштування retention
— Продюсери та consumer-групи, управління офсетами, ребалансування
— Потокова обробка на Kafka Streams та Apache Flink
— Семантика exactly-once, ідемпотентна та трансакційна запис
— Kafka Connect, schema registry, Avro та Protobuf
— Моніторинг, алерти по лагу та обробка dead-letter
Моя робота починається з самих даних. Я моделюю предметну область як події, вирішую, що повинно лежати в топіку, а що ні, та підбираю ключ партиціонування так, щоб зберегти гарантії порядку та при цьому рівномірно розподілити навантаження по брокерам. Далі вибудовую сам потік: продюсери, налаштовані під пропускну здатність або під надійність, consumer-групи під розмір навантаження та завдання потокової обробки в Kafka Streams або Flink, які джойнять, агрегують та збагачують дані на льоту. До семантики exactly-once я ставлюсь серйозно: ідемпотентні продюсери та трансакційна запис, щоб повтор ніколи не перетворився в дублікат нижче по потоку.
Крім щасливого сценарію мене хвилює те, з-за чого не спиться по ночах. Я піднімаю schema registry, щоб продюсери та консьюмери розвивалися, не ломаючи один одного, будую пайплайни Kafka Connect для перекачування даних у бази та об'єктні сховища та назад, а також ставлю dead-letter-черги, моніторинг та алерти по лагу консьюмерів ще до того, як що-то попаде в прод. Якщо ви починаєте з нуля або рятуєте крихкий пайплайн, який втрачає повідомлення, — допоможу зібрати те, чому справді можна довіряти.
— Проектування кластера Kafka, стратегія топіків та партицій, налаштування retention
— Продюсери та consumer-групи, управління офсетами, ребалансування
— Потокова обробка на Kafka Streams та Apache Flink
— Семантика exactly-once, ідемпотентна та трансакційна запис
— Kafka Connect, schema registry, Avro та Protobuf
— Моніторинг, алерти по лагу та обробка dead-letter