Буквально на секунду представьте, что у вас есть парочка здоровенных кластеров Apache Kafka, каждый из которых держит по нескольку миллионов rps. И тут вас попросили зеркалировать топик из одного кластера в другой. Максимально близко к реалтайму, да ещё и с некоторыми специфическими условиями. Если стало страшно, интересно или страшно интересно, то это статья для вас.
Под катом я расскажу, что такое зеркалирование и зачем оно нужно. Как нам перестало хватать Mirror Maker’а. Поговорим о возможных решениях и выборе между ними. И дам подробную инструкцию, как вам развернуть такое решение у себя.
Apache *
Свободный веб-сервер
Новости
Kafka за 20 минут. Ментальная модель и как с ней работать
Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.
5 типичных ошибок при использовании Apache Kafka
Даже если у вас большой опыт работы с Apache Kafka, время от времени наверняка случается зайти в тупик. Например, когда вы конфигурируете и изучаете клиенты или настраиваете и отслеживаете брокеры. Попробуй за всем уследить, когда в конвейере Kafka столько компонентов. В этой статье описано пять частых ошибок и советы по тому, как их избежать на всех этапах — от конфигурирования клиентов и брокеров до планирования и мониторинга. Эти рекомендации сэкономят вам время и силы.
Как собрать платформу обработки данных «своими руками»?
Большое количество российских компаний столкнулись с ограничениями в области ПО. Они теперь не имеют возможности использовать многие важные инструменты для работы с данными. Но, как говорится, одна дверь закрылась — другая открылась. Альтернатива зарубежным решениям есть: платформу обработки данных можно создать своими силами. Расскажем, как мы в ITSumma это сделали, какие компоненты использовали, с какими ограничениями столкнулись и зачем вообще всё это нужно.
Предыстория (очень короткая)
Один заказчик, который заинтересовался нашими компетенциям в построении инфраструктур, предложил крупный интеграционный проект. Архитекторы клиента придумали сложную и большую платформу, которая включала в себя машинное обучение, обработку данных и управлялась с помощью Kubernetes. Нам поставили задачу реализовать проект платформы, настроить связность элементов, построить и запустить инфраструктуру в эксплуатацию.
В итоге всё прошло хорошо и заказчик доволен. А у нас возникла идея скомпоновать свою платформу — такую, чтобы она была доступной не только большому бизнесу, но и компаниям среднего и малого масштаба. То есть сделать так, чтобы можно было получать большие возможности и не платить при этом огромные деньги.
Истории
Обкафкился по полной: 3 фейла с Apache Kafka
Недавно мы проводили вебинар «Обкафкился по полной. Фейлы с Apache Kafka». На нём спикер Всеволод Севостьянов, Engineering Manager в HelloFresh, поделился фейлами из личной практики, а ещё рассказал, как мастерски ходить по тонкому льду Kafka и прокачать свой бэкенд. Для тех, кто пропустил или предпочитает читать, а не смотреть, подготовили текстовый вариант.
Как мы построили корпоративную шину данных на Kafka, которая обрабатывает до 3 млн сообщений в секунду
Привет! Меня зовут Иван Гаас, я руковожу автоматизацией процессов разработки в Почтатехе — компании, создающей цифровые продукты для Почты России.
Среднее количество сообщений, которые мы обрабатываем в Почте — от 500 тысяч до миллиона в секунду. В пики, когда наша big data прогоняет свои 25 петабайт данных — до 3 миллионов. При этом кластер Kafka состоит всего из 12 серверов в каждом из 3 дата-центров и справляется с этим.
C 2016 года мы в три раза увеличили количество новых цифровых сервисов. Корпоративная шина на Kafka помогла быстро масштабироваться: количество интеграций за последнее время упало с 1000 до 300 и теперь растёт незначительно. Если раньше интеграция сервиса растягивалась на месяцы, то теперь достаточно нескольких дней.
Я расскажу, как мы построили шину, которая обеспечивает такую производительность.
Как прикрутить SQL к чему угодно при помощи Apache Calcite
Сделать свою собственную SQL-базу данных или запускать SQL-запросы в NoSQL-базе данных — кажется, это очень непростая задача. А если мы говорим о распределенной БД, то сложность возрастает многократно. Но, к счастью, Apache Calcite — фреймворк с открытым кодом — поможет сделать это довольно легко.
Роман Кондаков, Software Engineer в Querify Labs, на конференции HighLoad++ Весна 2021 рассказал об опыте интеграции Apache Calcite в распределенную in-memory-платформу Apache Ignite. Если ваша система распределена, и вы хотите завести в ней SQL, читайте про то, как устроен Apache Calcite и какие есть нюансы его использования для распределенных систем. Видео его выступления можно посмотреть здесь.
Как поменять архитектуру облака и не поломать пользовательский опыт
Каждой компании важно оправдать ожидания клиентов, особенно публичному сервису. В случае облачных провайдеров клиенты приходят, чтобы быстро и привычным способом получить, например, виртуальную машину. Их мало волнует, что бывает взрывной рост запросов, в ЦОД приезжает новое железо, а инженеры заняты масштабной миграцией другого пользователя. Клиентам важно быстро получить услуги и отказоустойчивость сервиса. Любое, даже незначительное изменение во внутреннем пространстве сервиса может привести к проблемам на стороне клиентов, как минимум к увеличению времени создания машины.
Константин Еремин, старший системный администратор дежурной службы «Облачной платформы Selectel», рассказал, как поменять архитектуру облака на OpenStack и не поломать пользовательский опыт. На примере выдуманного провайдера Vanilla cloud solutions он объяснил, как определить масштаб проблемы. Почему, перебрав различные варианты, разработчики пришли к Apache Airflow? Какую схему использовали для реализации своих задач и что им удалось сделать с облачным сервисом с помощью выбранного инструмента? Рассказываем под катом.
Apache Kafka — скоро без ZooKeeper
В основе Apache Kafka находится лог — простая структура данных, которая использует последовательные операции, работающие в симбиозе с оборудованием. Эффективное использование дискового буфера и кэша процессора, prefetch, передача данных zero-copy и много других радостей — все это благодаря построенной на логе структуре, которая славится своей эффективностью и пропускной способностью. Обычно эти преимущества, а еще базовая реализация в виде лога коммитов, — первое, что люди узнают о Kafka.
Код самого лога составляет относительно малую часть всей системы. Гораздо больше занимает код, который отвечает за организацию партиций (т. е. логов) на множестве брокеров в кластере — назначает лидеров, обрабатывает сбои и т. д. Этот код и делает Kafka надежной распределенной системой.
Раньше важной частью работы распределенного кода был Apache ZooKeeper. Он хранил самые важные метаданные системы: где находятся партиции, кто из реплик лидер и т. д.
Apache Kafka: основы технологии
У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и читаются данные.
Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.
Интеграционный слой с Kafka и микросервисами: опыт построения операционной CRM контакт-центра торговой сети Пятерочка
Из этого поста вы узнаете, зачем добавлять в интеграционный слой бизнес-логику, что случается, когда «не летит» Service mesh, и почему иногда костыли — лучшее решение проблемы.
Привет Хабр, на связи Иван Большаков — архитектор интеграционных решений, эксперт департамента разработки ПО КРОК. Я расскажу, как мы делали интеграционный слой для CRM-системы группы контакт-центров торговой сети Пятерочка.
Всего в системе одновременно находятся десятки тысяч пассивных пользователей с открытыми интерфейсами и сотни активных, которые пишут в чаты, принимают звонки и нажимают на кнопки. Операторы одновременно работают с десятком различных систем…
Практический взгляд на хранение в Kafka
Kafka повсюду. Где есть микросервисы и распределенные вычисления, а они сейчас популярны, там почти наверняка есть и Kafka. В статье я попытаюсь объяснить, как в Kafka работает механизм хранения.
Почему Kafka такая быстрая
За последние несколько лет в сфере архитектуры ПО произошли огромные изменения. Идея единственного монолитного приложения или даже нескольких крупных сервисов, разделяющих общий массив данных, практически стерта из умов и сердец инженеров-практиков во всем мире. Преобладающими инструментами в создании современных бизнес-ориентированных приложений стали автономные микросервисы, событийно-ориентированная архитектура и CQRS. Вдобавок быстрый рост количества подключаемых устройств (мобильных, IoT) многократно увеличивает объем событий, которые система должна оперативно обрабатывать.
В статье рассказываем, за счет чего Apache Kafka работает достаточно быстро для современных проектов.
Ближайшие события
Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера
Привет, Хабр! Меня зовут Сергей Бевзенко, я ведущий разработчик Delivery Club в команде Discovery. Наша команда занимается навигацией пользователя по приложению Delivery Club: мы отвечаем за основную выдачу ресторанов, поиск и всё, что с этим связано.
Я расскажу про Kafka Connect: что это такое, какова общая концепция и как работать с этим фреймворком. Это будет полезно тем, кто использует Kafka, но не знаком с Kafka Connect. Если у вас огромный монолит и вы хотите перейти на событийную модель, но сталкиваетесь со сложностью написания продюсеров, то вы тоже найдёте здесь ответы на свои вопросы. В комментариях можем сравнить ваш опыт использования Kafka Connect с нашим и обсудить любые вопросы, которые с этим связаны.
Как IT-компания книжное издательство открывала — и выпустила книгу про Kafka
В последнее время некоторым начинает казаться, будто такой «консервативный» источник информации как книга начинает сдавать позиции и теряет актуальность. А зря: несмотря на то, что мы уже живём в эпоху цифровую и вообще работаем в IT, книжки мы любим и уважаем. Особенно такие, которые не просто учебник по конкретной технологии, а реальный источник общего знания. Особенно такие, которые не потеряют актуальность полгода спустя. Особенно такие, которые написаны хорошим языком, грамотно переведены и красиво оформлены.
И знаете, что оказалось? Таких книг нет.
Либо — либо — либо. А вот этой прекрасной книги, в которой сочетается всё, что думающий и практикующий специалист ценит, — её нет.
Поэтому мы решили, что она должна быть. И не одна — таких книг должно быть много. Решили — и открыли собственное издательство ITSumma Press: возможно, первое издательство в России, созданное IT-компанией.
Было потрачено много сил, времени и порядком денег. Но вот за день до конференции Uptime day 4 мы получили пилотный тираж и подержали первую изданную нами книгу в руках (весь тираж подарили участникам конференции в итоге). Невероятное ощущение! Никогда заранее не знаешь, куда в итоге может тебя привести твоя тяга к прекрасному. Первая книга, по понятным причинам, была своеобразным пробным шаром. Нам нужно было самим прощупать весь процесс книгоиздательства, понять, что мы можем привнести сразу, а над чем нужно будет подумать ещё. И по итогу мы остались очень довольны результатом. Это важное дело, которое мы хотим продолжать и развивать. А в этом тексте хочу просто рассказать, с чего всё начиналось, как мы спорили про название, как заключили договор с, ни много, ни мало, самими O’Reilly и сколько редактур надо провести, прежде чем отдать текст в прод в типографию.
Как стать коммиттером и действительно ли вам это нужно
Опыт разработки сервиса Refund Tool с асинхронным API на Kafka
Но это вовсе не значит, что нельзя рассчитывать на дополнительную выгоду. В чем конкретно можно выиграть, если внедрить events-driven API на Kafka, расскажет Сергей Заика (fewald). Про набитые шишки и интересные открытия тоже обязательно будет — не может эксперимент без них обойтись.
Disclaimer: Это статья основана на материалах митапа, который Сергей провел в ноябре 2018 года на HighLoad++. Живой опыт Lamoda работы с Kafka привлек слушателей не меньше, чем на другие доклады из расписания. Нам кажется, это отличный пример того, что всегда можно и нужно находить единомышленников, а организаторы HighLoad++ и дальше будут стараться создавать располагающую к этому атмосферу.
Картографирование шума с помощью KSQL, Raspberry Pi и радиоприёмника
На первый взгляд, в этой истории есть всё, чтобы заслужить статус романтичного поста накануне 8 марта: самолёты, любовь, чуточка шпионажа и, наконец, котик (точнее, кошка). Трудно представить, что всё это имеет самое непосредственное отношение к Kafka, KSQL и эксперименту «как в домашних условиях с помощью информационных технологий найти самый шумный самолёт». Трудно, но придётся: именно такой эксперимент провёл Саймон Обьюри, а мы перевели статью его авторства с описанием всех подробностей процесса.
Исследуем пределы пропускной способности Kafka в инфраструктуре Dropbox
Широкое использование технологий Apache-стека — очевидный тренд. И Kafka на острие популярности: нынче людей, знающих такой брокер сообщений, пожалуй, превосходит количество тех, кто привык рядом со словом Кафка видеть слово Франц.
Мы и сами активно используем эту технологию в наших проектах. Но ведь всегда интересно, а как оно получается у других? И вдвойне интересно, если это не просто пример из чьей-то практики, а целенаправленное тестирование технологии. Поэтому мы перевели свежую статью, в которой рассказывается о том, как Dropbox опытным путём искал границы возможностей и лимиты выносливости у Kafka. И нашёл что хотел.
Apache Kafka и RabbitMQ: семантика и гарантия доставки сообщений
Подготовили перевод следующей части многосерийной статьи, где сравнивается функциональность Apache Kafka и RabbitMQ. В этой публикации речь идёт о семантике и гарантии доставки сообщений. Обращаем ваше внимание, что автор учитывал Кафку до версии 0.10 включительно, а в версии 0.11 появился exactly-once. Тем не менее, статья остаётся актуальной и полна полезных с практической точки зрения моментов.
Предыдущие части: первая, вторая.
Вклад авторов
eapotapov 163.6Polina_Averina 153.6ph_piter 97.0alextokarev 92.0Morozka 77.0mechanicusilius 66.0Anna_sokol22 56.0ITSumma 51.0ValeryKomarov 47.0neoflex 46.0