- Что важно узнать перед установкой
- Как установить и настроить Apache Kafka на Linux
- Как установить и настроить Apache Kafka на macOS
- Как установить и настроить Apache Kafka на Windows
- Заключение
Apache Kafka – это распределенная система обмена сообщениями, которую используют для передачи данных между разными сервисами и приложениями. Ее часто называют брокером сообщений: Kafka принимает сообщения от одних приложений, сохраняет их и передает другим. Она позволяет системам обмениваться данными в реальном времени, не зависит от скорости работы отдельных компонентов и не требует прямого подключения сервисов друг к другу.
В центре работы Kafka лежит понятие топика – канала, куда отправляются сообщения. Приложения, которые создают данные, называются продюсерами, а те, которые читают данные, – консьюмерами. Kafka хранит сообщение не в одном общем файле, а делит каждый топик на партиции – независимые последовательные логи. Партиция работает как отдельная очередь сообщений, расположенная на диске.
Kafka используется в ситуациях, где требуется:
- передавать данные между сервисами без задержек;
- собирать события от множества источников: сайтов, приложений, датчиков;
- строить очереди заданий и процессы, реагирующие на события;
- обрабатывать потоки логов, метрик, действий пользователей;
- связывать микросервисы и упрощать их взаимодействие;
- строить системы аналитики, реагирующие на изменения данных сразу после их появления.
Эта платформа надежно хранит сообщения, работает в кластере из нескольких серверов и масштабируется горизонтально.
Что важно узнать перед установкой
- Kafka работает на Java. Для запуска требуется установленный JDK, причем не любая версия подойдет. Современные релизы Kafka ориентируются на Java 17 и выше, поэтому важно убедиться, что система поддерживает актуальную версию.
- Zookeeper обязателен в классических версиях. Большинство стабильных сборок Kafka, доступных в установщиках и пакетных менеджерах, все еще используют Zookeeper. Это отдельный сервис, который нужно запускать первым.
- Пути к данным должны быть постоянными. Встроенные пути вида /tmp или временные каталоги Windows приводят к потере данных и ошибкам. Чтобы избежать проблем, лучше заранее подготовить директорию для логов и рабочих файлов.
- Свободные порты обязательны. По умолчанию Zookeeper использует порт 2181, Kafka – 9092. Если эти порты заняты, сервер не запустится, поэтому стоит проверить этот момент на конфликты заранее.
- Система генерирует большие объемы логов. Kafka активно пишет данные на диск: логи работы, сегменты топиков, временные файлы. Поэтому на диске должно быть достаточно свободного места.
- Обновления и совместимость нужно заранее проверить. Новые версии Kafka могут требовать обновления Java, клиентов или конфигураций. Несовместимые версии приводят к ошибкам еще на этапе запуска.
Как установить и настроить Apache Kafka на Linux
Шаг 1. Подготовка системы и установка Java (JDK 17+)
Для начала нужно установить актуальную версию Java. Начиная с ветки 4.x, Kafka требует как минимум Java 17, поэтому более ранние версии не подойдут.
- Обновите список пакетов и выполните обновление системы:
sudo apt upgrade -y
- Установите необходимую версию среды выполнения и компилятора Java:
sudo apt install default-jdk
Как правило, в актуальных дистрибутивах Ubuntu пакеты default-jdk и default-jre уже соответствуют Java 17 или новее. При необходимости вы можете вручную установить JDK 17:
- Проверьте установленную версию Java:
Если вывод содержит openjdk version "17" или выше, система готова для дальнейшей установки Kafka.
Шаг 2. Скачивание и распаковка Apache Kafka 4.1.1
- Перейдите в каталог, в котором вы хотите разместить Kafka:
- Скачайте архив с Apache Kafka версии 4.1.1:
- Распакуйте архив:
Появится директория:
- Перейдите в нее:
cd kafka_2.13-4.1.1
Шаг 3. Запуск Kafka в режиме KRaft (без Zookeeper)
Начиная с ветки 4.x, Apache Kafka больше не использует Zookeeper. Вместо него применяется собственный механизм управления метаданными – KRaft. Перед первым запуском необходимо сгенерировать идентификатор кластера и отформатировать хранилище метаданных.
Сначала создайте уникальный идентификатор для вашего кластера:
Команда выведет строку наподобие:
Скопируйте этот UUID – он понадобится на следующем шаге.
Kafka должна создать внутреннее хранилище для управления кластером. Для этого выполните:
-t <ваш-UUID> \
-c config/kraft/server.properties
Где <ваш-UUID> – строка, полученная ранее.
После форматирования Kafka будет готова к запуску.
Теперь запустите Kafka в режиме KRaft:
Если сервер запустился успешно, вы увидите сообщения о загрузке логгеров и инициализации сети. Kafka теперь работает без Zookeeper и готова принимать подключения.
Шаг 4. Проверка работоспособности Apache Kafka
После запуска Kafka важно убедиться, что сервер действительно работает и способен принимать и передавать сообщения. Для этого нужно выполнить три действия: создать тестовый топик, отправить в него сообщение и затем прочитать его обратно.
Создайте простой топик с именем test-topic. В команде укажите одну партицию и коэффициент репликации 1. Репликация – это копирование данных на несколько брокеров для надежности, но при односерверной установке значение всегда равно 1:
--topic test-topic \
--partitions 1 \
--replication-factor 1 \
--bootstrap-server localhost:9092
Чтобы убедиться, что топик действительно создан, можно вывести список всех существующих топиков:
Если вы увидите test-topic в списке, значит сервер зарегистрировал новый канал данных.
Теперь отправьте в этот топик тестовое сообщение. Здесь используется простой продюсер, который берет текст из стандартного ввода (в нашем случае строку "hello kafka") и отправляет его на сервер:
--topic test-topic \
--bootstrap-server localhost:9092
Дальше нужно прочитать сообщение. Для этого используется консольный консьюмер – программа, которая подключается к топику и выводит все сообщения, начиная с первого. Флаг --from-beginning указывает, что нужно прочитать историю топика с самого начала:
--topic test-topic \
--from-beginning \
--bootstrap-server localhost:9092
Если в терминале появится строка hello kafka, значит Kafka приняла сообщение, сохранила его и успешно отдала обратно.
Как установить и настроить Apache Kafka на macOS
Apache Kafka можно установить на macOS через менеджеру пакетов Homebrew. Он упрощает загрузку программ, автоматически решает зависимости и не требует прав администратора для большинства операций.
Шаг 1.1. Установка Homebrew
Если Homebrew на вашем Mac еще не установлен, начните с этого шага. Homebrew – это инструмент, который позволяет устанавливать приложения через терминал так же легко, как через App Store, только для программ разработчиков.
Чтобы установить Homebrew, откройте Терминал и выполните команду:
Шаг 1.2. Обновление Homebrew
Если Homebrew уже есть, обновите его, чтобы получить актуальные версии пакетов:
Шаг 2. Установка Java (JDK)
Apache Kafka работает на платформе Java, поэтому перед ее установкой необходимо установить JDK – комплект разработки Java. JDK включает в себя не только исполняемую среду (JRE), но и инструменты, которые позволяют запускать и обслуживать приложения на Java. Без него Kafka просто не запустится.
На macOS проще всего поставить Java через Homebrew, который вы уже подготовили.
Введите команду:
Homebrew скачает и установит нужную версию JDK, после чего вам останется только убедиться, что Java доступна системе. Проверьте это командой:
Если в ответ вы увидите номер версии, например openjdk 17, значит все в порядке.
Шаг 3. Установка Apache Kafka
Теперь можно установить Kafka самой простой командой:
Homebrew скачает Kafka и все необходимые файлы конфигурации, поместив их в /usr/local/etc/kafka/ или /opt/homebrew/etc/kafka/ – путь зависит от архитектуры процессора (Intel или Apple Silicon).
Шаг 4. Запуск Zookeeper и Kafka
Далее нужно запустить два сервиса: сначала Zookeeper, затем сам сервер Kafka. Zookeeper – это вспомогательная служба, которая помогает Kafka управлять своим состоянием: хранить информацию о брокере, топиках и распределении данных. Без него большинство версий Kafka работать не смогут, поэтому он всегда запускается первым.
Чтобы запустить Zookeeper, выполните команду (путь может отличаться, если у вас Apple Silicon):
Теперь откройте второе окно терминала и включите сервер Kafka:
Kafka начнет загружать свои компоненты, проверит конфигурацию и откроет порт для подключения клиентов. Если все прошло успешно, вы увидите в терминале сообщения о старте брокера.
Шаг 5. Что можно настроить в Kafka после установки
Все параметры Kafka находятся в файле server.properties. Он лежит в каталоге, который Homebrew указал при установке, чаще всего это /usr/local/etc/kafka/ или /opt/homebrew/etc/kafka/. Этот файл можно открыть любым текстовым редактором.
Один из ключевых параметров – это количество разделов в топиках. Разделы (или партиции) позволяют Kafka обрабатывать данные параллельно: каждый раздел – это как отдельный поток сообщений. Чем их больше, тем больше одновременных операций может выполнять Kafka, но и ресурсов понадобится больше.
Другой важный параметр – количество реплик. Реплика – это копия данных, которую Kafka хранит на случай сбоя. Если реплик несколько, кластер сможет пережить падение отдельных узлов. На одной машине смысла в репликации нет, поэтому по умолчанию используется одна копия.
Также в конфигурации указываются данные о самом брокере Kafka: его идентификатор, сетевые порты, директории для хранения логов и место, куда сохраняются сообщения. Все эти параметры можно менять в зависимости от того, хотите ли вы запускать Kafka в одиночном режиме или планируете расширяться до полноценного кластера.
В целом стандартных настроек достаточно, чтобы запустить Kafka и отправлять сообщения. Но если вы планируете использовать ее в реальных проектах, имеет смысл изучить файл конфигурации подробнее – он определяет производительность, стабильность и возможности вашего кластера.
Как установить и настроить Apache Kafka на Windows
Шаг 1. Установка Java
Kafka работает на Java, поэтому сначала нужно установить JDK – комплект разработки Java.
Перейдите на сайт Oracle или Adoptium (оба источника подходят) и скачайте установщик JDK для Windows. Лучше брать актуальную версию, например JDK 17 или новее – Kafka работает с ней без проблем.
Запустите установщик и пройдите стандартные шаги: выбор пути, подтверждение установки и завершение.
После установки обязательно проверьте, что Java корректно прописалась в системе. Откройте командную строку (Win + R → cmd) и выполните:
Если в ответ появится строка с номером версии, например:
Значит Java установлена и готова к работе.
Шаг 2. Скачивание и распаковка Apache Kafka
Перейдите на официальный сайт Apache Kafka в раздел Downloads. В списке доступных файлов выберите Binary downloads – это готовые к использованию сборки. Kafka распространяется в виде ZIP-архива, например:
Скачайте архив и сохраните его в удобном месте, например в C:\Downloads или прямо на рабочем столе. Его нужно будет распаковать в постоянный каталог.
Важно: скачивать нужно именно binary сборку, а не source. Binary-архив уже содержит все готовые скрипты, библиотеки и конфигурации, которые необходимы для запуска Kafka на Windows.
Поместите скачанный архив в эту директорию и распакуйте его любым удобным способом: встроенными средствами Windows или архиватором вроде 7-Zip. После распаковки внутри появится папка с названием вроде:
Внутри каталога расположена структура, с которой вы будете работать:
- bin – набор исполняемых файлов и скриптов Kafka; в подпапке windows находятся .bat-файлы, предназначенные именно для Windows.
- config – конфигурационные файлы, такие как server.properties и zookeeper.properties.
- libs – библиотеки, необходимые для работы Kafka.
- logs – логи работы сервера, которые помогут при диагностике.
- site-docs – документация текущей версии Kafka.
- LICENSE / NOTICE – правовая информация.
Распакованную папку стоит переименовать: задайте более короткое имя, например C:\kafka\kafka.
Шаг 3. Настройка путей для логов и данных
Kafka и Zookeeper по умолчанию используют временные каталоги наподобие /tmp для хранения логов и рабочих данных. В Windows такие директории не подходят: файлы могут удаляться, путь может оказаться недоступным, а работа сервера – нестабильной. Чтобы избежать проблем, стоит сразу перенастроить пути на постоянные каталоги.
Создайте удобную папку для хранения данных Kafka, например:
Теперь откройте файл конфигурации Kafka:
Найдите строку:
И замените путь на постоянный каталог:
Таким образом Kafka будет хранить журналы работы и данные топиков в стабильной директории.
Далее настройте Zookeeper. Откройте файл:
И измените параметр:
На, например:
Шаг 4. Запуск Zookeeper и Kafka
Kafka, установленная на Windows, работает в связке с Zookeeper – это отдельный сервис, который отвечает за координацию работы брокеров. Поэтому запуск начинается именно с него.
Откройте новое окно cmd и перейдите в корневую директорию Kafka, например:
Для запуска Zookeeper выполните команду:
Команда запустит процесс, который начнет слушать стандартный порт 2181.
Окно закрывать нельзя – Zookeeper должен работать все время, пока запущена Kafka.
Далее откройте второе окно командной строки и перейдите в ту же директорию. Теперь запустите сам брокер Kafka:
Если все настроено правильно, в терминале появится поток сообщений о загрузке модулей и инициализации сетевых соединений. Это означает, что сервер успешно запустился и готов принимать подключение продюсеров и консьюмеров.
Шаг 5. Тестирование
Работоспособность Kafka проще всего проверить через создание тестового топика и обмен сообщениями между продюсером и консьюмером.
Начните с создания топика. Откройте новое окно командной строки, перейдите в каталог Kafka и выполните:
Если команда отработала без ошибок, топик создан. Проверить его можно командой:
В списке должен появиться TestTopic.
Теперь можно отправить несколько сообщений. Для этого запустите продюсер:
После запуска команда будет ожидать ввод. Напечатайте любую строку и нажмите Enter – сообщение уйдет в Kafka.
Чтобы увидеть отправленные данные, откройте еще одно окно командной строки и запустите консьюмер:
В терминале появятся все сообщения, которые вы отправили через продюсер.
Если строки отображаются, значит Kafka полностью работоспособна: сервер запущен, топики создаются, сообщения принимаются и обрабатываются без ошибок.
Заключение
Kafka – отличный выбор для тех, кто хочет выстроить надежную систему обмена данными между сервисами. Она справляется с огромным потоком сообщений, легко масштабируется и сохраняет данные даже при сбоях отдельных узлов. Благодаря архитектуре с партициями и репликацией, Kafka уверенно работает и в простых, и в крупных кластерах.
С Kafka компании могут строить быстрые аналитические системы, централизованные очереди событий и современные микросервисные архитектуры. Она одинаково хорошо подходит для потоковой обработки логов, метрик, действий пользователей или данных IoT-устройств.