/kafka-workshop

Интенсив «Kafka за 90 минут» для DevOpsConf 2023

MIT LicenseMIT

Интенсив «Kafka за 90 минут»

Sponsored by SberMarket Tech

Интенсив «Kafka за 90 минут» состоит из двух частей: теории и практики. Теория поможет составить ментальную модель Kafka, а практика — попробовать инструмент в действии и получить набор готовых конфигураций для применения их в своих лабораторных и тестовых средах на работе.

Теория

Содержание

  • Расскажем о сценариях использования Kafka.
  • Узнаем, что такое консумер, продюсер и брокер.
  • Разберём, как связаны топики, партиции и сегменты.
  • Поговорим о формате сообщений в Kafka.
  • Расскажем о лидере партиций, репликации данных и партицировании.
  • Поговорим о гарантиях доставки сообщений и идемпотентности.
  • Выясним, что такое консумер-группа и ребалансировка консумеров в ней.

Длительность: 45 минут

Материал

Практика

Содержание

  • Склонируем репозиторий с конфигурацией Docker Compose.
  • Подберём конфигурации топиков и создадим их.
  • Настроим и запустим продюсер.
  • Настроим и запустим консумер.
  • Изменим оффсет для консумер-группы.
  • Посмотрим на основные показатели в Grafana.

Длительность: 30 минут

Материал

Бонус-трек

Материалы

Confluent Kafka with JMX?

  1. 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.

  2. 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.

  3. 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.)

  4. Install the VisualVM-MBeans plugin in VisualVM.

  5. 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 --