Как стать автором
Обновить
7.79

Apache *

Свободный веб-сервер

Сначала показывать
Порог рейтинга
Уровень сложности

Мы заглянули под капот Kafka и решили проблему потерянных сообщений

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 11K

Kafka — это масштабируемая, отказоустойчивая платформа для обмена сообщениями в реальном времени. Она позволяет обрабатывать миллионы сообщений в секунду. Однако некоторые ситуации приводят к потере событий. Например, Kafka требует хорошего стабильного сетевого соединения между клиентами и брокерами; если сеть нестабильна, это может легко привести к потере сообщений. 

Команда разработчиков Trendyol Tech видоизменила архитектуру и решила эту проблему с помощью outbox-шаблона, но столкнулась с другой проблемой — дублированием событий. Приводим перевод статьи о том, как разработчики залезли под капот Kafka и нашли решение этих двух проблем.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 5

Apache Flink ML – прогнозирование в реальном времени

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2K

Всем привет!

В этой статье рассмотрим применение библиотеки Apache Flink ML для построения конвейеров машинного обучения. Затем реализуем простой проект по прогнозированию поведения системы, а также ответим на вопросы: какие задачи Machine Learning подходят для Flink и какие особенности Flink делают его подходящим для использования в задачах Machine Learning.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Обработка больших и очень больших графов: Pregel

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 1.3K

Статья является продолжением предыдущей статьи в рамках цикла статей, посвященных обработке больших и очень больших графов. В статье реализованы распределенные версии четырех классических алгоритмов: "Связные компоненты", "Кратчайшее расстояние", "Топологическая сортировка" и PageRank на Apache Spark DataFrame API. Алгоритмы составлены в соответствии с идеями популярного фреймворка распределенной обработки графов Pregel.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Доступ к потоковой передаче данных в режиме реального времени

Время на прочтение 10 мин
Количество просмотров 2.3K

Как Redpanda и Materialize — продукты, не основанные на JVM — делают потоковую обработку доступной для широких масс за счет снижения операционных издержек? Обсудим в статье.

Читать далее
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 2

Истории

Apache Spark 3.4 для Databricks Runtime 13.0

Время на прочтение 10 мин
Количество просмотров 1.3K

Databricks — это аналитическая платформа для облачных вычислений, работы с большими данными и машинного обучения. Компания разрабатывает data lake и работает с фреймворком Apache Spark. Приводим перевод статьи Databricks о нововведениях Apache Spark 3.4, который вошел в релиз Databricks Runtime 13.0.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

Что такое «хорошо» и что такое «плохо» в NiFi. Часть 3

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.6K

Переносимость процессоров и паттерны

Вот и обещанная третья часть саги о том, что в NiFi можно делать и как это делать правильно, без претензий на истину в последней инстанции, конечно. Сегодня расскажу о переносимости процессоров и дам несколько паттернов для самых популярных задач на платформе ZIIoT. Если вдруг вам интересно почитать про оптимизацию схем и производительности в NiFi — велком в первую часть. Если мечтаете узнать больше о мониторинге, то вторая часть — must read. Только потом сюда не забудьте вернуться.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 7K

Привет, Хабр! В наше время при постоянном росте объемов данных и необходимостью более быстрой и надежной обработки информации, мы сталкиваемся с требованием к эффективному обмену и синхронизации данных между различными системами. Отслеживание и обработка данных в реальном времени стало жизненно необходимым для современных приложений.

В этой статье мы рассмотрим, как Kafka Connect – мощный инструмент из экосистемы Apache Kafka – приходит на помощь при решении сложной задачи синхронизации данных между базами данных. Мы рассмотрим, как используя Kafka Connect, мы можем эффективно следить за изменениями в одной базе данных, обрабатывать их в нашем Java приложении и мгновенно записывать их в другую базу данных, обеспечивая надежность и безопасность данных.

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Аутентификация клиента Kafka SSL в мультитенантной архитектуре

Время на прочтение 6 мин
Количество просмотров 6.4K

Apache Kafka является ключевым продуктом не только для преобразования сообщений, но и при обработке данных в реальном времени, а также для многих других случаев использования. Архитектуры, размещенные в облаке, утверждают, что они безопасны с точки зрения коммуникации и обеспечения общей безопасности. Но когда дело доходит до частого взаимодействия клиента/потребителя с сервером/производителем, Kafka обеспечивает встроенную поддержку SSL, а также пользовательскую аутентификацию. В этой статье мы шаг за шагом настроим такой механизм аутентификации.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 0

Градиентный бустинг: как подобрать гиперпараметры модели в 5 раз быстрее, чем обычно?

Уровень сложности Сложный
Время на прочтение 36 мин
Количество просмотров 3.7K

В этой статье я расскажу, как, используя недокументированные возможности фреймворка Apache Spark, качественно подобрать гиперпараметры для модели градиентного бустинга всего за один человеко-день вместо обычных пяти.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 4

Потоковая обработка данных с помощью Kafka Streams: архитектура и ключевые концепции

Уровень сложности Средний
Время на прочтение 23 мин
Количество просмотров 22K

При реализации потоковой обработки и анализа данных может возникнуть необходимость агрегирования записей для объединения нескольких независимых поток данных или обогащения какой-либо модели данных. Для этой цели может использоваться Kafka Streams, которая позволяет выполнять обработку данных в режиме реального времени. 

В этой статье мы рассмотрим основные компоненты Kafka Streams и теоретические аспекты их использования. Мы будем использовать последние версии технологий, доступных на сегодня: Kafka 3.4.0 и Java 17 в качестве языка программированию. Для снижения входного порога мы будем использовать только нативные возможности Kafka и Kafka Streams, и не будем рассматривать решения с использованием различных фреймворков вроде Spring.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 1

Как Flink Table API упрощает разработку

Время на прочтение 8 мин
Количество просмотров 1.2K

Apache Flink является популярным фреймворком для обработки больших данных и аналитики в режиме реального времени. Одним из ключевых компонентов этого фреймворка является Table API, который предоставляет удобный и выразительный способ работы с данными в формате таблиц, аналогичный SQL.

Если вы разработчик, который хочет узнать больше о том, как использовать Apache Flink Table API для обработки потоковых данных, или если вы интересуетесь современными инструментами аналитики данных, эта статья для вас.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Что такое «хорошо» и что такое «плохо» в NiFi. Часть  2

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.4K

Мониторинг 

Продолжаем разговор о том, что в NiFi делать можно и нужно, а что можно, но лучше не стоит. Если вы пропустили первую часть разговора, то вам сюда. Там про улучшение читаемости схем и повышение производительности (ну почти). Здесь же пойдет речь о том, как проводить мониторинг бизнес-части схемы, чтобы всем было хорошо (ну или чтобы не было плохо), ну и немного о переносимости процессоров. Поехали!

Есть мнение, что хуже всего — не вести мониторинг бизнес-части схемы совсем, используя популярный подход «и так сойдет!». Но если подумать, есть одна вещь хуже отсутствия мониторинга — неправильный мониторинг.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 0

Apache Airflow в связке с Kubernetes

Уровень сложности Сложный
Время на прочтение 5 мин
Количество просмотров 6.7K

Привет! Меня зовут Алексей Карпов, я DevOps-инженер (MLOps) отдела ML разработки в OKKO. Хочу поделиться опытом в работе с Apache Airflow в связке с Kubernetes. Расскажу, как установить Airflow в Kubernetes, настроить автоматическую синхронизацию DAG'ов с удалённым репозиторием, а также как отладить его работу. Всё это — на примере запуска простейшего DAGа. 

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 2

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн

Консолидация отображения данных с использованием протокола OData

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.2K

Появилась у нас тут задачка, вывести на портале Incomand данные из разных подсистем (1С, Тезис…) . Конечно можно было бы написать плагины, каждый из которых слазил бы в подсистему, получил данные и показал их на портале - НО - мы бы получили p2p и спагетти, порталу пришлось бы разбираться с форматами и протоколами работы каждой системы….

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 43K

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 7

Kafka за 20 минут. Ментальная модель и как с ней работать

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 68K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее
Всего голосов 41: ↑41 и ↓0 +41
Комментарии 15

Как мы распиливаем монолит без даунтайма

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.9K
image

Всем привет!

На связи Михаил, и я продолжаю делиться историями про рефакторинг одного из сервисов облачной платформы #CloudMTS. В прошлый раз я рассказывал о том, как мы аккуратно раскладывали по папочкам код в соответствии с принципами чистой архитектуры. Сегодня поговорим о решении, которое позволяет нам распиливать монолит по кусочкам без простоев.

Вместо дисклеймера
Переход от монолита к микросервисной архитектуре — задача непростая. Особенно когда приложение уже в продуктиве. Пускаться в эту историю, потому что микросервисы — это стильно и молодежно, плохая затея. Стартуйте только тогда, когда преимущества трансформации будут очевидны и перевесят возможные издержки.

Наши причины перехода были следующими:

  1. В монолите концентрировалось большое количество бизнес-процессов, которые охватывали сразу несколько потребителей: пользователей облачной платформы, сейлз-менеджеров (через CRM-систему), администраторов, обработчиков метрик. Получилась такая одна большая точка отказа сразу для 4 групп бизнес-процессов.
  2. Каждый бизнес-процесс потребляет свой объем ресурсов. Например, для обработки метрик нужно 5 подов (чтобы запараллелить и ускорить обработку), для администрирования хватит и одного. Так как у нас все в одном сервисе, при масштабировании монолита мы будем ориентироваться на самый «прожорливый» бизнес-процесс. Часть ресурсов будет просто простаивать.
  3. Хотелось добиться гранулярности, чтобы независимо писать и деплоить код для каждого бизнес-процесса. И не переживать, что какие-то изменения в одном бизнес-процессе неожиданно отрикошетят в соседний.

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 2

Проблемы приземления данных из Kafka и их решения на Apache Flink

Время на прочтение 14 мин
Количество просмотров 3.4K

Меня зовут Вадим Опольский и я работаю data-инженером и участвую в проведении онлайн-тренингов. В статье есть ссылки на воркшопы, чтобы повторить практические вещи из Apache Flink, о которых я расскажу. А обсудим мы следующие проблемы:

➜ Неравномерный поток данных;

➜ Потери данных при передаче их из Kafka в storage;

➜ Масштабирование и скейлинг;

➜ Backpressure;

➜ Мелкие файлы на HDFS;

➜ Стриминговый процессинг.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

Как дать крылья своей сводной таблице в Apache Superset

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 6K

Эта статья посвящена особенностям доработок в Apache Superset, и в ней я расскажу, как его можно использовать для визуализации больших объемов данных в рамках сводных таблиц.

Хочу читать дальше
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 2

Обеспечение безопасности в Apache Kafka

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 11K

В предыдущих статьях мы рассмотрели архитектуру решения Apache Kafka, развернули продукт и разобрались с отправкой и получением сообщений. Можно было бы, конечно, дальше погрузиться в тему использования данного решения, но в Интернете есть множество различных публикаций с примерами использования Kafka для различных задач и различных сред разработки. Поэтому данная статья будет целиком и полностью посвящена такой важной теме, как обеспечение безопасности Apache Kafka.

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

В статье мы будем говорить о встроенных в Kafka механизмах защиты и не будем касаться использования каких-либо наложенных средств.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 5