Интенсив «Kafka за 90 минут»
Интенсив «Kafka за 90 минут» состоит из двух частей: теории и практики. Теория поможет составить ментальную модель Kafka, а практика — попробовать инструмент в действии и получить набор готовых конфигураций для применения их в своих лабораторных и тестовых средах на работе.
Теория
Содержание
- Расскажем о сценариях использования Kafka.
- Узнаем, что такое консумер, продюсер и брокер.
- Разберём, как связаны топики, партиции и сегменты.
- Поговорим о формате сообщений в Kafka.
- Расскажем о лидере партиций, репликации данных и партицировании.
- Поговорим о гарантиях доставки сообщений и идемпотентности.
- Выясним, что такое консумер-группа и ребалансировка консумеров в ней.
Длительность: 45 минут
Материал
Практика
Содержание
- Склонируем репозиторий с конфигурацией Docker Compose.
- Подберём конфигурации топиков и создадим их.
- Настроим и запустим продюсер.
- Настроим и запустим консумер.
- Изменим оффсет для консумер-группы.
- Посмотрим на основные показатели в Grafana.
Длительность: 30 минут
Материал
Бонус-трек
Материалы
- Kafka: настройка клиента
- Kafka: чтение и запись в топик
- Kafka: управление топиками и партициями
- Kafka: управление консумер-группами
- Kafka: управление доступами к топикам
Confluent Kafka with JMX?
-
I set up Kafka using https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html#ce-docker-quickstart. This launches Kafka with JMX installed.
-
This installation provides Confluent Control Center so you can view metrics there. However I wanted the raw metrics exposed by JMX so I proceeded to the next steps.
-
I installed VisualVM from here https://visualvm.github.io/download.html. (You can also use jconsole available in the JAVA/jdk/bin folder installed in your local m/c but I had connectivity issues running jconsole against the container JMX.)
-
Install the VisualVM-MBeans plugin in VisualVM.
-
Add a JMX connection using the KAFKA_JMX_HOSTNAME:KAFKA_JMX_PORT values from your docker-compose.yml in Step 1.
Bingo you can see the metrics from Confluent Kafka running on the container!
-- OR --