Kafka • 9 апреля 2025 • 10 мин чтения

Kafka: как установить и настроить

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

Что такое Kafka и зачем она нужна?

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

Kafka — это не просто "очередь сообщений". Это полноценный брокер событий, способный обрабатывать миллионы сообщений в секунду.

Она хорошо подходит для:

  • потоковой аналитики (stream processing),
  • построения ETL-конвейеров,
  • микросервисных архитектур,
  • журналирования (логгирования),
  • передачи сообщений между приложениями и модулями.

В современных системах Kafka занимает центральное место как посредник между источниками данных (приложениями, сенсорами, логами) и потребителями (базами, аналитическими платформами, алертингом).

Как работает Apache Kafka

Архитектура строится вокруг понятий:

  • Брокер Kafka — сервер, принимающий и раздающий сообщения;
  • Продюсер (producer) — источник данных, который отправляет сообщения;
  • Консьюмер (consumer) — получатель сообщений;
  • Топик (topic) — логическая категория сообщений, по сути, "канал";
  • Партиция (partition) — часть топика, физически разделённая для масштабируемости;
  • ZooKeeper — сервис координации, необходимый для управления кворумом и брокерами (в версиях до Kafka 3.x).
Kafka сохраняет сообщения в партициях на диск, и каждый консьюмер может читать их с любой позиции. Это значит, что один поток можно обрабатывать параллельно несколькими сервисами без риска потерь или дублирования.

С момента выпуска в 2011 году платформа стала стандартом для real-time потоковой обработки. Её используют LinkedIn, Netflix, Uber, Яндекс и тысячи других компаний.

Почему стоит изучать Kafka сейчас

Микросервисы, big data, IoT, машинное обучение — все эти направления требуют обмена данными без задержек. Платформа идеально ложится в этот стек. Она способна выдерживать колоссальную нагрузку и при этом сохраняет данные надёжно и предсказуемо.

Новичку может показаться, что настроить и запустить это решение сложно. Но это не так — нужно лишь понять базовую логику и правильно развернуть компоненты. Эта статья расскажет, как установить Apache Kafka, как её настроить и с чего начать запуск.

Вы научитесь:

  • Устанавливать Kafka на Windows, Ubuntu, macOS;
  • Разворачивать Kafka в Docker;
  • Настраивать окружение: JAVA_HOME, KAFKA_HOME;
  • Работать с ZooKeeper и systemd;
  • Поднимать Kafka-сервер и отправлять первые сообщения;
  • Разбираться, как работает kafka-server-start.sh и другие команды.
Кстати, если вы давно хотели разобраться в брокерах сообщений — сейчас самое время. Kafka уже вошла в стандартную IT-сборку крупных проектов, и умение с ней работать добавит веса в любом резюме.
Дальше мы разберёмся с системными требованиями, а затем по шагам пройдём через установку на всех популярных платформах, включая Docker. В конце статьи вы получите работающую Kafka-систему, готовую к тестированию и развитию.

Основные компоненты и файлы

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

  • /bin — здесь лежат исполняемые скрипты, например kafka-server-start.sh, kafka-topics.sh, zookeeper-server-start.sh.
  • /config — конфигурационные файлы Kafka и ZooKeeper (server.properties, zookeeper.properties и др.).
  • /libs — библиотеки Java, необходимые для работы сервера.
  • /logs — каталог логов.
  • /data — в некоторых сборках может быть создана директория хранения сообщений.
Это важно: Kafkaэто Java-приложение. Значит, перед запуском вам потребуется установленная Java версии 8 и выше (JDK, не JRE). Также желательно настроить переменные среды: JAVA_HOME и KAFKA_HOME.

Kafka без ZooKeeper?

В последних версиях системы появился режим KRaft (Kafka Raft), который позволяет запускать Kafka без ZooKeeper. Он упрощает архитектуру, снижает количество компонентов и точек отказа. Однако:

  • Поддержка KRaft по-прежнему развивается.
  • Большинство документации и статей (включая референсы) ориентированы на классическую схему с ZooKeeper.

В рамках этой статьи мы рассмотрим оба подхода: с ZooKeeper и в Docker-сценарии — без него.

Что понадобится для установки

Чтобы установить Apache Kafka, нужно:

  • Скачать дистрибутив с официального сайта или через менеджер пакетов;
  • Убедиться в наличии Java (JDK);
  • Подготовить переменные окружения;
  • Настроить конфигурационные файлы;
  • Запустить ZooKeeper (если используется);
  • Запустить Kafka-брокер;
  • Создать топик;
  • Проверить отправку и получение сообщений.
В нашем боте-помощнике вы найдете полезную информацию по установке и работе с кластером из одного брокера
Дарим туториал по основам Apache Kafka
В зависимости от операционной системы эти шаги могут немного отличаться. Далее мы подробно рассмотрим установку на:

  • Windows;
  • Ubuntu;
  • macOS;
  • через Docker — самый простой путь, если нужен локальный стенд без лишней мороки.

Что вы получите в итоге

После выполнения инструкции вы:

  • Развернёте локальный Kafka-брокер;
  • Настроите его под свою ОС;
  • Научитесь создавать топики и передавать сообщения;
  • Поймёте, как запустить Kafka, как она обрабатывает потоки и как ей управлять через CLI.

Если вы новичок — не переживайте: шаги даны последовательно, объяснены термины и приведены примеры.

💡 Совет: сохраняйте скрипты и команды, которые будете использовать. Это поможет быстрее разворачивать систему в будущем и автоматизировать установку.

Немного об опыте: Kafka в реальных проектах

Решение применяется не только в highload-сервисах. Его используют для:

  • систем мониторинга (например, метрики Prometheus через Kafka в ClickHouse),
  • обработки логов (Logstash → Kafka → Elasticsearch),
  • распределённых очередей (например, в микросервисах с Java и Spring Boot),
  • потоковой агрегации данных в финансовых системах.
Пример: один из банков использует Kafka для отслеживания транзакций в реальном времени, реагируя на события быстрее, чем это позволяла старая очередь на RabbitMQ.

Такие примеры показывают, что знание этой платформы — не просто теория, а навык, который нужен в боевых условиях.

Хотите стать гуру равномерного распределения нагрузки? На курсе «Apache Kafka База» расскажем, как работать с платформой,  как настраивать распределенный отказоустойчивый кластер и отслеживать метрики.

Готовы приступить к установке? Начнём с самого базового: что нужно, чтобы система «потянула» эту систему.

Системные требования

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

Минимальные системные требования

Для тестовой установки или локального стенда достаточно следующей конфигурации:

  • Процессор: 2 ядра (x86_64 или ARM64)
  • Оперативная память: от 4 ГБ (рекомендуется 8 ГБ для одновременного запуска ZooKeeper и Kafka)
  • Диск: минимум 5 ГБ свободного пространства
  • Java: JDK 8, 11 или 17 (Kafka поддерживает Java 8+, но лучше использовать актуальную LTS-версию)
Для продакшн-сценариев рекомендуются более высокие параметры, особенно по оперативной памяти и скорости дисков (желательно SSD). Система интенсивно использует дисковую подсистему, так как сохраняет все сообщения на диск.

Программные зависимости

Apache Kafka работает на Java и не требует специфической ОС. Вы можете развернуть её на:

  • Windows (от Windows 10 и выше),
  • Linux (Ubuntu, CentOS, Debian),
  • macOS (от Catalina 10.15).

Платформа не зависит от конкретной ОС, но в Linux-среде работать с ней проще и стабильнее, особенно при автоматизации запуска и настройки.

Для запуска потребуется:

  • Java JDK — убедитесь, что установлена полная Java-разработка, а не только JRE.
  • ZooKeeper (если используете классическую архитектуру Kafka до версии 3.x);
  • Переменные окружения: JAVA_HOME, KAFKA_HOME;
  • Bash-совместимый терминал (особенно актуально для macOS и Linux).

Программные зависимости

Apache Kafka работает на Java и не требует специфической ОС. Вы можете развернуть её на:

  • Windows (от Windows 10 и выше),
  • Linux (Ubuntu, CentOS, Debian),
  • macOS (от Catalina 10.15).

Платформа не зависит от конкретной ОС, но в Linux-среде работать с ней проще и стабильнее, особенно при автоматизации запуска и настройки.

Для запуска потребуется:

  • Java JDK — убедитесь, что установлена полная Java-разработка, а не только JRE.
  • ZooKeeper (если используете классическую архитектуру Kafka до версии 3.x);
  • Переменные окружения: JAVA_HOME, KAFKA_HOME;
  • Bash-совместимый терминал (особенно актуально для macOS и Linux).

Требования к сети

Решение активно взаимодействует с внешними сервисами и клиентами. Поэтому убедитесь, что:

  • Открыты нужные порты:
  • 2181 — для ZooKeeper;
  • 9092 — для Kafka по умолчанию;
  • Не конфликтуют службы с аналогичными портами;
  • Локальный hostname или IP указан корректно в конфигурации (advertised.listeners), иначе консьюмеры не смогут подключаться.

Поддержка Docker

Если вы не хотите устанавливать Kafka и ZooKeeper вручную, используйте Docker. Он упрощает запуск, особенно при работе с микросервисами и временными стендами.

Плюсы запуска через Docker:

  • Быстрый старт;
  • Не требует настройки окружения;
  • Легко разворачивать несколько брокеров;
  • Можно интегрировать с Docker Compose.
Мы подробно разберём этот способ в одном из следующих разделов.

Kafka в облаке

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

  • Confluent Cloud — официальный сервис от разработчиков Kafka;
  • AWS MSK (Managed Streaming for Apache Kafka);
  • Azure Event Hubs (с поддержкой протокола Kafka);
  • Google Cloud Pub/Sub (совместимость с Kafka-экосистемой).
Для обучения и отладки рекомендуется сначала выполнить локальную установку, а уже потом пробовать кластерные и облачные варианты.

Теперь, когда мы определились с требованиями, можно переходить к практике. Начнём с самой распространённой ОС — Windows.

Установка и настройка на Windows

Хотя Apache Kafka изначально создавалась для Linux, развернуть её на Windows тоже возможно. Особенно если вы хотите попробовать брокер сообщений локально, без виртуальных машин и Docker-контейнеров.

Шаг 1: Установка Java (JDK)

Kafka работает на Java, поэтому первым делом нужно установить JDK.

  1. Скачайте последнюю LTS-версию JDK с сайта https://adoptium.net или https://jdk.java.net.
  2. Установите JDK и пропишите переменную окружения JAVA_HOME:
  • Откройте Свойства системы → Переменные среды.
  • Добавьте JAVA_HOME со значением пути к установленному JDK (например, C:\Program Files\Java\jdk-17).
  • В переменную Path добавьте %JAVA_HOME%\bin.
Проверьте в терминале:
java - version
Если выводится версия JDK — всё готово.

Шаг 2: Скачивание и распаковка

  1. Перейдите на «официальный сайт Kafka».
  2. Скачайте архив Binary downloads с поддержкой Scala (обычно kafka_2.13-x.x.x.tgz).
  3. Распакуйте архив в любую директорию, например: C:\kafka.
⚠️ Название папки не должно содержать пробелов или русских букв.

Шаг 3: Настройка переменных окружения (по желанию)

Чтобы удобно запускать систему из любого места, пропишите переменную KAFKA_HOME:

  1. Добавьте KAFKA_HOME = C:\kafka
  2. В Path добавьте:
%KAFKA_HOME%\bin\windows

Шаг 4: Запуск ZooKeeper и Kafka

В классической схеме Kafka зависит от ZooKeeper, поэтому сначала запускается он. Перейдите в папку bin/windows и запустите ZooKeeper:
zookeeper-server-start.bat ..\..\config\zookeeper.properties
Откройте новое окно терминала и запустите Kafka:
kafka-server-start.bat ..\..\config\server.properties
Если всё прошло успешно, в терминале появится сообщение Kafka started.

Шаг 5: Создание топика

После запуска можно создать топик — логическую категорию сообщений:
kafka-topics.bat --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
Проверьте, что топик создан:
kafka-topics.bat --list --bootstrap-server localhost:9092

Шаг 6: Отправка и получение сообщений

Запуск продюсера:
kafka-console-producer.bat --broker-list localhost:9092 --topic test
Введите сообщение и нажмите Enter.

Запуск консьюмера:
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
Вы увидите отправленные сообщения.

Возможные ошибки и решения

  • Missing JAVA_HOME — убедитесь, что переменная окружения прописана.
  • Порты 2181 или 9092 заняты — остановите другие процессы.
  • Kafka не запускается — проверьте версию Java и корректность путей.
🛠️ Совет: создайте .bat-файлы с командами запуска, чтобы не вводить их вручную.
Теперь вы знаете, как установить Apache Kafka на Windows и выполнить базовую настройку. Переходим к Ubuntu.

Установка и настройка на Ubuntu

Установка Kafka на Ubuntu — один из самых стабильных и удобных способов для локальной разработки. Здесь меньше ограничений, чем в Windows, а управление сервисами можно полностью автоматизировать через systemd.

Шаг 1: Обновление системы и установка Java

Платформа требует установленной Java (JDK). Установим OpenJDK 11, подходящую для Kafka 2.x и 3.x.

sudo apt update && sudo apt upgrade -y
sudo apt install openjdk-11-jdk -y

Проверьте установку:

java -version

Шаг 2: Загрузка

Перейдите на официальный сайт «kafka.apache.org/downloads» и скопируйте ссылку на нужную версию. Затем скачайте архив через wget:

wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz

Распакуйте архив:

tar -xvzf kafka_2.13-3.6.0.tgz
mv kafka_2.13-3.6.0 /opt/kafka

Шаг 3: Проверка переменной окружения JAVA_HOME

Убедитесь, что JAVA_HOME прописана. Добавьте её в .bashrc:

echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc

Шаг 4: Запуск ZooKeeper и Kafka вручную

Помним, что ZooKeeper запускается первым:

/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

Откройте новый терминал и запустите Kafka-брокер:

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

Шаг 5: Создание топика

/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

Проверьте:

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Шаг 6: Отправка и получение сообщений

Продюсер:

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

Консьюмер:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Шаг 7 (опционально): Автозапуск через systemd

Создайте юнит-файлы:

sudo nano /etc/systemd/system/zookeeper.service

Вставьте:

[Unit]
Description=Apache ZooKeeper
After=network.target

[Service]

Type=simple
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]

WantedBy=multi-user.target

Аналогично создайте kafka.service:

sudo nano /etc/systemd/system/kafka.service

[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

Активируйте сервисы:

sudo systemctl daemon-reexec
sudo systemctl enable zookeeper kafka
sudo systemctl start zookeeper
sudo systemctl start kafka

Всё готово к работе. Теперь вы знаете, как поднять Kafka на Ubuntu вручную или через systemd. Далее — установка на macOS.

Установка и настройка на macOS

Установка Apache Kafka на macOS проще всего через Homebrew. Это быстро, удобно и хорошо подходит для локальной разработки. Ниже — пошаговая инструкция для запуска Kafka с ZooKeeper на macOS.

Шаг 1: Установка Homebrew (если не установлен)

Откройте терминал и выполните:

/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Проверьте установку:

brew --version

Шаг 2: Установка Kafka и ZooKeeper

Установим Kafka вместе с зависимостями:

brew install kafka

Homebrew установит Kafka и ZooKeeper в стандартные директории и автоматически добавит бинарные файлы в PATH.

Шаг 3: Запуск ZooKeeper

Вам всё ещё требуется ZooKeeper, если вы не используете режим KRaft. Запустите его через brew:

brew services start zookeeper

Проверьте статус:

brew services list

Шаг 4: Запуск Kafka

После запуска ZooKeeper включаем нашу платформу:

brew services start kafka

Вы также можете выполнить ручной запуск:

kafka-server-start /opt/homebrew/etc/kafka/server.properties

Шаг 5: Создание топика

kafka-topics --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

Проверим наличие:

kafka-topics --list --bootstrap-server localhost:9092

Шаг 6: Тестовый обмен сообщениями

Продюсер:

kafka-console-producer --broker-list localhost:9092 --topic test

Консьюмер:

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

Шаг 7: Управление сервисами

Остановить Kafka и ZooKeeper можно командой:

brew services stop kafka
brew services stop zookeeper

Если вы хотите отключить автозапуск:

brew services remove kafka
brew services remove zookeeper

Примечания

  • Решение работает на Java, убедитесь, что у вас установлен JDK 11 или выше. Если нет — установите через brew:
brew install openjdk@11

  • Убедитесь, что в PATH добавлены Kafka-утилиты. Обычно Homebrew делает это автоматически, но можно добавить вручную:
export PATH="/opt/homebrew/bin:$PATH"

Kafka успешно развернута на macOS. Это одна из самых простых платформ для локального тестирования брокеров сообщений. Далее — установка через Docker.

Установка и настройка в Docker

Если не хочется возиться с установкой Java, конфигурацией ZooKeeper и путями, проще всего развернуть Kafka в Docker. Этот способ подойдёт как для локального тестирования, так и для развёртывания на сервере без сложной подготовки среды.

Шаг 1: Установка Docker

Если Docker ещё не установлен, скачайте его с «официального сайта» и установите в системе.

Проверьте установку:

docker --version

Шаг 2: Запуск Kafka и ZooKeeper в Docker через команду

Требуется ZooKeeper. Самый быстрый способ — поднять оба сервиса через одну команду:

docker run -d --name zookeeper \
-e ALLOW_ANONYMOUS_LOGIN=yes \
-p 2181:2181 \
bitnami/zookeeper:latest

Затем запустим Kafka, привязав её к ZooKeeper:

docker run -d --name kafka \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=host.docker.internal:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-p 9092:9092 \
bitnami/kafka:latest

Если вы на Linux, замените host.docker.internal на IP вашей машины (172.17.0.1 или localhost).

Шаг 3: Проверка работы

Убедитесь, что оба контейнера работают:

docker ps

Вы увидите bitnami/zookeeper и bitnami/kafka в списке запущенных контейнеров.

Шаг 4: Взаимодействие внутри контейнера

Подключимся к Kafka-контейнеру:

docker exec -it kafka bash

Создание топика:

kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

Проверка:

kafka-topics.sh --list --bootstrap-server localhost:9092

Запуск продюсера:

kafka-console-producer.sh --broker-list localhost:9092 --topic test

Запуск консьюмера:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Шаг 5: Docker Compose (альтернатива)

Можно использовать docker-compose.yml, чтобы управлять системой проще. Создайте файл:

version: '3'
services:
zookeeper:
image: bitnami/zookeeper:latest
ports:
- "2181:2181"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes

kafka:
image: bitnami/kafka:latest
ports:
- "9092:9092"
environment:
- KAFKA_BROKER_ID=1
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
depends_on:
- zookeeper

Запустите:

docker-compose up -d

Kafka и ZooKeeper будут запущены в изолированной сети, и вы сможете легко ими управлять.
💡 Docker — лучший способ для быстрого развёртывания на локальной машине, особенно если вы не хотите вручную ставить Java и настраивать конфиги. Работает одинаково хорошо на Windows, macOS и Linux.
Теперь, когда Kafka работает в контейнере, переходим к настройке пользователей.
Начните бесплатно изучать работу с Apache Kafka!
Дарим демодоступ к обучению на 3 дня, чтобы вы познакомились с материалами и спикерами курса.

Создание пользователя

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

Зачем вообще создавать пользователей?

Kafka поддерживает механизмы:

  • SASL/PLAIN — простая аутентификация по логину и паролю;
  • SASL/SCRAM — хешированная схема хранения паролей;
  • SSL — обмен ключами и сертификатами;
  • ACL (Access Control Lists) — контроль прав доступа на уровне топиков и ресурсов.

В этом разделе покажем, как добавить пользователя и включить базовую защиту через SASL/PLAIN

Шаг 1: Включение SASL в конфиге Kafka

Откройте файл:

/opt/kafka/config/server.properties

Добавьте или раскомментируйте:

listeners=SASL_PLAINTEXT://:9092
advertised.listeners=SASL_PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
super.users=User:admin

Шаг 2: Добавление паролей пользователей

Создайте файл kafka_server_jaas.conf:

KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_user1="user1-secret";
};

Здесь user_user1 — наш пользователь.

Шаг 3: Подключение JAAS-файла

Добавьте путь к kafka_server_jaas.conf в переменную окружения:

export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf"

Это можно прописать в systemd-юните или запускном скрипте Kafka.

Шаг 4: Перезапуск

Остановите и запустите Kafka с учётом настроек:

systemctl restart kafka

Или вручную:

/opt/kafka/bin/kafka-server-stop.sh
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

Шаг 5: Проверка авторизации клиента

Создайте аналогичный файл для клиента:

KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="user1"
password="user1-secret";
};

И при запуске консольных утилит укажите его:

KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_client_jaas.conf" \
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning \
--consumer.config /opt/kafka/config/client.properties

Файл client.properties должен содержать:

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

Теперь вы знаете, как создать пользователя, защитить соединение и управлять доступом. Это особенно важно при масштабировании и работе в командах.

Следующий шаг — подготовка файлов и папок. Переходим к загрузке дистрибутива.

Загрузка файлов

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

Где скачать

Официальный источник — «сайт Apache Kafka»:

Выбирайте версию, совместимую с вашей версией Scala и Java. Рекомендуется скачивать binary builds with Scala 2.13, так как они чаще всего используются.

Пример команды для Linux или macOS

wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xvzf kafka_2.13-3.6.0.tgz
sudo mv kafka_2.13-3.6.0 /opt/kafka

Пример для Windows

  1. Перейдите «по ссылке»
  2. Скачайте архив .tgz
  3. Распакуйте его с помощью 7-Zip или встроенного архиватора
  4. Поместите папку в C:\kafka или другую директорию без пробелов в названии

Структура папки Kafka

После распаковки вы получите примерно такую структуру:

kafka_2.13-3.6.0/
├── bin/
├── config/
├── libs/
├── logs/
└── site-docs/

  • bin/ — исполняемые скрипты для запуска Kafka, ZooKeeper, создания топиков и др.
  • config/ — конфигурационные файлы: server.properties, zookeeper.properties
  • logs/ — логи работы брокера
  • libs/ — зависимости Java

Рекомендации

  • Убедитесь, что у вас достаточно свободного места (минимум 2–3 ГБ).
  • Не размещайте Kafka в папках с кириллическими символами или пробелами.
  • При использовании Docker загрузка архива не требуется — всё работает через образы.
⚡ На этом этапе система уже скачана, распакована и готова к запуску. Осталось лишь немного настроить — и можно переходить к тестированию.

Заключение

Apache Kafka — мощный инструмент для передачи данных в реальном времени. Несмотря на репутацию сложной системы, на практике она устанавливается и настраивается за полчаса — особенно если вы работаете локально или через Docker.

Мы разобрали:

  • как установить на Windows, Ubuntu, macOS;
  • как поднять Kafka через Docker без лишних зависимостей;
  • базовую архитектуру и назначение компонентов;
  • как настроить Kafka для передачи сообщений;
  • как запустить систему, создать топик, передать данные;
  • основы авторизации с помощью SASL/PLAIN;
  • требования к системе и особенности запуска с systemd.

Теперь у вас на руках все инструменты, чтобы самостоятельно развернуть Kafka, экспериментировать с её возможностями и начать строить потоковую архитектуру.
⚙️ Kafka открывает двери в мир больших данных, микросервисов и real-time аналитики. Даже если вы не планируете становиться DevOps-инженером — умение работать с Kafka даст вам серьёзное преимущество.
Если вы дочитали до этого момента — значит, готовы двигаться дальше. Следующий шаг — попробовать на практике. Разверните Kafka, создайте пару топиков, подключите простенький микросервис или Python-скрипт и понаблюдайте, как всё работает в реальном времени.

📌 Читайте блог Слёрма

Если тема оказалась вам полезной — обязательно загляните в другие статьи блога slurm.io. Мы регулярно публикуем гайды по DevOps, микросервисам, Kubernetes и облачным технологиям.
Хотите научиться работать с Kafka в продакшене? Следите за нашими курсами и воркшопами — в них вы научитесь не только настраивать эту платформу, но и строить отказоустойчивые кластеры, подключать мониторинг и интегрировать её в CI/CD-пайплайны.

Статью подготовили

Редакция Слёрма
Понравилась статья? Будем рады вашему лайку и репосту — вдруг кому-то тоже пригодится:)
Оцените статью

Читайте также: