Уголок сельского джависта
Уголок сельского джависта
  • 91
  • 555 632
Основы Apache Kafka
Информационные системы в процессе своей работы порождают большое количество событий, которые могут быть связаны как с самой системой, так и с реализуемой предметной областью.
Но созданные события нужно доставить до получателей - других компонентов информационной системы, и в этом случае на помощь приходят брокеры очередей сообщений и стриминговые системы. В этом ролике речь пойдёт о самой популярной системе стриминга событий - Apache Kafka и будут описаны следующие темы:
- Краткое описание стримов данных
- Терминология Kafka
- Локальный запуск Apache Kafka
- Использование утилит CLI для отправки и получения сообщений
- Отправка и получение сообщений в проекте на Java
00:00:00 Вступление
00:01:35 Про стримы данных
00:06:36 Терминология и теория Kafka
00:21:00 Установка и запуск Kafka
00:31:39 Отправка и получение сообщений в CLI
00:47:49 Создание отправителя в Java
00:55:21 Использование транзакций
01:02:55 Не идемпотентные отправители и подтверждение записи
01:06:12 Создание получателя в Java
01:08:28 Ручное назначение партиций получателю
01:11:14 Получение сообщений
01:16:57 Подписка на топик в группе получателей
01:25:00 Поиск смещения
01:39:55 Фиксация прочитанных смещений получателем
01:55:30 Про семантики доставки
02:01:35 Пример семантики Exactly Once
02:06:40 Выводы
Связанные с роликом статьи:
Про очереди сообщений: alexkosarev.name/2024/10/25/about-mq/
Начало работы с Kafka: alexkosarev.name/2024/10/31/kafka-intro/
Запуск Apache Kafka в кластере: alexkosarev.name/2024/11/04/kafka-clustering/
Apache Kafka: партиции и реплики: alexkosarev.name/2024/11/08/kafka-partitions-and-replicas/
Отправка сообщений в Kafka: alexkosarev.name/2024/12/03/kafka-sending-messages/
Получение сообщений из Kafka: alexkosarev.name/2024/12/04/kafka-receiving-messages/
Канал в Telegram: t.me/+TZCuO38vG3oqu_Jq
Поддержать проект: www.tinkoff.ru/cf/4PEOiVCZQuS
Переглядів: 4 971

Відео

SC24EP22 Шаблонизация с Helm - Разработка проектов со Spring
Переглядів 3,1 тис.9 місяців тому
В заключительном ролике цикла я хочу вкратце рассказать о Helm - инструменте, который позволяет упростить процесс написания дескрипторов развёртывания для Kubernetes за счёт шаблонизации. Все написанные ранее дескрипторы развёртывания для сервисов имеют по большей части схожую структуру, и шаблонизация в данном случае позволит уменьшить дублирование кода и в целом ускорить процесс развёртывания...
SC24EP21 Kubernetes без Spring Cloud - Разработка проектов со Spring
Переглядів 2 тис.9 місяців тому
Kubernetes предоставляет богатый набор инструментов, благодаря чему вам не требуется Spring Cloud для развёртывания проектов на основе Spring Boot. Это позволяет более рационально использовать ресурсы облака и даже немного сэкономить на облачных услугах. В двадцать первом ролике цикла речь пойдёт о замене Spring Cloud Gateway, Spring Cloud Netflix Eureka и Spring Cloud Config на средства Kubern...
SC24EP20 Развёртывание сервисов в Kubernetes - Разработка проектов со Spring
Переглядів 3,7 тис.9 місяців тому
В двадцатом ролике цикла речь пойдёт о Kubernetes, инструменте, который в значительной степени упрощает развёртывание и сопровождение проектов с микросервисной архитектурой в облачной инфраструктуре. Оркестраторы, реализующие спецификации k8s, позволяют автоматизировать процессы развёртывания, миграции и масштабирования сервисов. В рамках ролика будет продемонстрировано развёртывание ранее напи...
SC24EP19 Контейнеризация приложений с Docker и Docker Compose - Разработка проектов со Spring
Переглядів 3,6 тис.9 місяців тому
В девятнадцатом ролике цикла речь пойдёт о развёртывании сервисов в контейнерах Docker, я расскажу о том, как можно написать универсальный Dockerfile, продемонстрирую запуск сервисов в контейнерах. А затем я перейду к Docker Compose, при помощи которого можно управлять развёртыванием не одного контейнера, а набором контейнеров, необходимых для работы проекта. Кроме этого вкратце будут затронуты...
SC24EP18 Шлюз API Spring Cloud Gateway - Разработка проектов со Spring
Переглядів 5 тис.9 місяців тому
В некоторых случаях вам может понадобиться реализовать единую точку входа для множества REST API, реализованных в рамках разных сервисов. В экосистеме Spring Cloud для данных целей существует Spring Cloud Gateway, позволяющий реализовать шлюз API (API Gateway) и гибко настраивать маршрутизацию запросов к вашим REST API. В цикле роликов "Разработка проектов со Spring" я рассказываю на простых пр...
SC24EP17 Сервис конфигураций Spring Cloud Config - Разработка проектов со Spring
Переглядів 2,5 тис.9 місяців тому
В семнадцатом ролике цикла речь пойдёт о сервисе конфигураций Spring Cloud Config. При сопровождении большого количества сервисов процесс изменения их настроек становится сложнее, особенно если речь заходит о массовом изменении настроек, так как у каждого сервиса есть свой файл с параметрами, который находится на сервере с запущенным сервисом. Spring Cloud Config позволяет централизованно управ...
SC24EP16 Реестр сервисов Spring Cloud Netflix Eureka - Разработка проектов со Spring
Переглядів 2,9 тис.9 місяців тому
В проектах с микросервисной или распределённой архитектурой количество запускаемых сервисов может исчисляться десятками, а в больших проектах их количество может и вовсе переваливать за сотню. И чтобы упростить работу при настройке экземпляров тех или иных сервисов придуманы реестры сервисов, которые в свою очередь позволяют реализовать механизм поиска сервисов (Service Discovery). При запуске ...
SC24EP15 Сбор трассировок с Grafana Tempo - Разработка проектов со Spring
Переглядів 2,3 тис.9 місяців тому
Пятнадцатый ролик серии завершает тему мониторинга сервисов, а посвящён он распределённым трассировкам с использованием Micrometer Tracing и Grafana Tempo. В процессе обработки запроса может быть задействовано большое количество компонентов: сервисов, баз данных, очередей сообщений и т.д. Трассировки предоставляют информацию о прохождении запроса через компоненты ваших сервисов, а собираемая ст...
SC24EP14 Централизованный сбор логов с Grafana Loki - Разработка проектов со Spring
Переглядів 3,2 тис.10 місяців тому
Логгирование является важной составляющей процесса мониторинга сервисов. Однако стандартный вывод логов в консоль или файл неудобен тем, что при необходимости анализа логов нужно подключаться к серверу, на котором запущен сервис. Хорошим решением является централизованное хранение логов, и в данном ролике для этого будет использован Grafana Loki, а так же будет продемонстрирована настройка Logb...
SC24EP13 Мониторинг сервисов с Micrometer и VictoriaMetrics - Разработка проектов со Spring
Переглядів 2,6 тис.10 місяців тому
В тринадцатом ролике цикла я продолжаю тему мониторинга сервисов, но на этот раз предлагаю рассмотреть более распространённую связку инструментов: Micrometer, VictoriaMetrics в качестве альтернативы Prometheus и Grafana. Примеры настройки инструментов мониторинга будут включать и OAuth 2.0. В цикле роликов "Разработка проектов со Spring" я рассказываю на простых примерах о процессе разработки в...
SC24EP12 Мониторинг и администрирование со Spring Boot Admin - Разработка проектов со Spring
Переглядів 3,3 тис.10 місяців тому
Мониторинг и администрирование являются важными составляющими процесса эксплуатации разрабатываемых сервисов. В настоящее время для этого существует достаточно большое количество инструментов общего назначения, но в этом ролике я хотел бы рассказать о специфичном для Spring Boot проекте, который называется Spring Boot Admin. Данный инструмент позволяет реализовать мониторинг проектов на основе ...
SC24EP11 Документация REST-сервисов - Разработка проектов со Spring #java #spring #swagger #openapi
Переглядів 3,2 тис.10 місяців тому
Написание документации является неотъемлемой частью процесса разработки даже относительно небольших проектов. В случае с REST-сервисами вы можете описать их вручную в формате OpenAPI, а можете использовать инструменты документирования, которые автоматизируют часть этого процесса. В одиннадцатом ролике серии речь пойдёт об использовании двух инструментов для автоматического генерирования докумен...
SC24EP10 Тестирование реактивных веб-приложений - Разработка проектов со Spring
Переглядів 1,9 тис.10 місяців тому
Тестирование является неотъемлемым этапом разработки программного обеспечения и обеспечивает качество разрабатываемых проектов, соблюдение требований и спецификаций, а также позволяет выявлять ошибки на ранних этапах. В десятом ролике серии речь пойдёт о модульном и интеграционном тестировании проектов на основе Spring Webflux и Project Reactor. Кроме этого в ролике рассматривается применение T...
SC24EP09 Безопасность реактивных веб-приложений - Разработка проектов со Spring
Переглядів 2,1 тис.10 місяців тому
Информационную систему сложно представить себе без аутентификации и авторизации - так или иначе нужно управлять доступом пользователя к тем или иным ресурсам. В девятом ролике серии речь пойдёт об обеспечении безопасности реактивных веб-приложений при помощи Spring Security и будет продемонстрирована настройка цепочки фильтров безопасности. В рамках ролика демонстрируется аутентификация и автор...
SC24EP08 Работа с реактивными базами данных - Разработка проектов со Spring #spring #java #mongodb
Переглядів 1,9 тис.10 місяців тому
SC24EP08 Работа с реактивными базами данных - Разработка проектов со Spring #spring #java #mongodb
SC24EP07 Разработка реактивных REST-сервисов - Разработка проектов со Spring
Переглядів 3,2 тис.10 місяців тому
SC24EP07 Разработка реактивных REST-сервисов - Разработка проектов со Spring
SC24EP06 Разработка реактивного веб-приложения - Разработка проектов со Spring
Переглядів 6 тис.10 місяців тому
SC24EP06 Разработка реактивного веб-приложения - Разработка проектов со Spring
SC24EP05 Тестирование веб-приложений - Разработка проектов со Spring #java #spring #softwaretesting
Переглядів 7 тис.10 місяців тому
SC24EP05 Тестирование веб-приложений - Разработка проектов со Spring #java #spring #softwaretesting
SC24EP04 Безопасность веб-приложений - Разработка проектов со Spring #java #spring #security
Переглядів 12 тис.10 місяців тому
SC24EP04 Безопасность веб-приложений - Разработка проектов со Spring #java #spring #security
SC24EP03 Работа с базами данных - Разработка проектов со Spring #java #spring #data #jpa #sql
Переглядів 9 тис.11 місяців тому
SC24EP03 Работа с базами данных - Разработка проектов со Spring #java #spring #data #jpa #sql
SC24EP02 Разработка REST-сервиса - Разработка проектов со Spring #java #spring #rest
Переглядів 13 тис.11 місяців тому
SC24EP02 Разработка REST-сервиса - Разработка проектов со Spring #java #spring #rest
SC24EP01 Разработка веб-приложения - Разработка проектов со Spring #spring #java #web #validation
Переглядів 27 тис.11 місяців тому
SC24EP01 Разработка веб-приложения - Разработка проектов со Spring #spring #java #web #validation
О цикле роликов - Разработка проектов со Spring
Переглядів 15 тис.11 місяців тому
О цикле роликов - Разработка проектов со Spring
Client, Resource Server, Login - Spring Security OAuth 2.0 #java #spring #security #oauth #oidc
Переглядів 8 тис.Рік тому
Client, Resource Server, Login - Spring Security OAuth 2.0 #java #spring #security #oauth #oidc
Actuator, Micrometer, Victoria Metrics, Grafana - Мониторинг Spring Boot #micrometer #springboot
Переглядів 9 тис.Рік тому
Actuator, Micrometer, Victoria Metrics, Grafana - Мониторинг Spring Boot #micrometer #springboot
Основы OAuth 2.0 и OpenID Connect #oauth #oidc #openidconnect
Переглядів 13 тис.Рік тому
Основы OAuth 2.0 и OpenID Connect #oauth #oidc #openidconnect
Мой год видеоблоггинга - ожидания, результаты, планы #влог #блог
Переглядів 1,2 тис.Рік тому
Мой год видеоблоггинга - ожидания, результаты, планы #влог #блог
Гексагональная архитектура и микросервисы #java #microservices #hexagonal
Переглядів 11 тис.Рік тому
Гексагональная архитектура и микросервисы #java #microservices #hexagonal
Access Control List (ACL) - Spring Security в деталях #springsecurity #java #acl #spring
Переглядів 2,6 тис.Рік тому
Access Control List (ACL) - Spring Security в деталях #springsecurity #java #acl #spring