Как установить Apache Kafka в Debian 10: Полное руководство
Apache Kafka — популярный распределенный брокер сообщений, предназначенный для обработки больших объемов данных в реальном времени. Кластер Kafka отличается масштабируемостью и отказоустойчивостью и имеет более высокую пропускную способность по сравнению с другими брокерами сообщений, такими как ActiveMQ и RabbitMQ. Хотя он обычно используется в качестве системы рассылки сообщений издатель/подписчик, многие организации также используют этого брокера для агрегации логов, поскольку он предоставляет надежное хранение для публикуемых сообщений.
Системные требования
Для установки нам понадобится VDS/VPS сервер c Debian 10 на борту, имеющий не менее 4 ГБ ОЗУ, сервер можно заказать в панели управления. Так же Kafka требует Java для работы, ее мы установим вместе. Так же рекомендую к прочтению, как установить kafka в Docker на Windows.
Войдем на сервер по SSH с помощью ssh клиента Putty.
apt update
apt upgrade
Установка Java
Убедитесь, что на вашем сервере установлена Java. Kafka требует Java для работы. Вы можете установить OpenJDK следующей командой:
apt install -y default-jre
Проверим, что OpenJDK установлен.
root@kafka:~# java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Debian-1deb12u1, mixed mode, sharing)
Скачивание и распаковка Apache Kafka
- Перейдите на официальный сайт Apache Kafka (https://kafka.apache.org/downloads) и скопируйте ссылку на последнюю версию Kafka.
- Вернитесь в терминал и используйте wget для загрузки Kafka. Замените LINK_TO_LATEST_KAFKA на актуальную ссылку, которую вы скопировали.
wget LINK_TO_LATEST_KAFKA
В моем случае
wget https://mirror.linux-ia64.org/apache/kafka/3.7.0/kafka_2.12-3.7.0.tgz
Распакуйте скачанный архив:
tar -xzf kafka_2.x-y.z.tgz
В моем случае
tar -xzf kafka_2.12-3.7.0.tgz
Здесь x, y, и z — это версия Kafka, которую вы загрузили.
Перейти в каталог Kafka
cd kafka_2.x-y.z
Для моей версии
cd kafka_2.12-3.7.0
cd bin
Запуск Zookeeper
Kafka использует Zookeeper для управления состоянием. Вы можете использовать встроенный Zookeeper, запустив его следующей командой с конфигурационным файлом zookeeper.properties:
./zookeeper-server-start.sh ../config/zookeeper.properties
Запуск брокера Kafka
Откройте новый терминал и перейдите в каталог Kafka. Затем запустите брокера Kafka:
cd kafka_2.12-3.7.0
cd bin
./kafka-server-start.sh ../config/server.properties
Теперь Apache Kafka запущен на вашем сервере Debian 10. Вы можете начать использовать Kafka для создания тем и отправки/получения сообщений. Не забудьте изменить конфигурацию, если это необходимо, в файлах zookeeper.properties и server.properties.
Проверка работы Kafka в Debian 10
Создадим еще одно подключение к серверу и перейдем в каталог Kafka.
cd kafka_2.12-3.7.0
cd bin
Чтобы проверить работу создадим тему «Partners«, допустим данная тема будет использоваться для обмена контрагентами между разными системами 1С.
./kafka-topics.sh --create --topic Partners --bootstrap-server localhost:9092
Получаем результат
root@kafka:~/kafka_2.12-3.7.0/bin# ./kafka-topics.sh --create --topic Partners --bootstrap-server localhost:9092
Created topic Partners.
Тема создана, а значит Kafka работает.
Установка и запуск Kafka REST Proxy на Debian 10
Для полноты примера, представим, что нам нужно построить распределенную систему обработки сообщений, в данному случае нам понадобится Kafka REST Proxy.
Что такое Kafka REST Proxy?
Kafka REST Proxy представляет собой прокси-сервер для Apache Kafka, который позволяет обмениваться сообщениями с помощью HTTP-запросов. Это означает, что вместо использования нативного Kafka-клиента мы сможем отправлять и получать сообщения через REST API, а иначе как?
Теперь, когда Kafka REST Proxy установлен и запущен, вы можете использовать его для обмена сообщениями через REST API.
Установка Kafka REST Proxy
Скачайте Kafka REST Proxy с официального репозитория GitHub:
wget https://github.com/confluentinc/kafka-rest/archive/master.zip
Распакуйте скачанный архив с помощью следующей команды:
unzip master.zip
Перейдите в директорию Kafka REST Proxy с помощью следующей команды:
cd kafka-rest-master
Соберите Kafka REST Proxy с помощью следующей команды:
./gradlew jar
Наконец, запустите Kafka REST Proxy с помощью следующей команды:
./bin/kafka-rest-start ./etc/kafka-rest/kafka-rest.properties
Использование Kafka REST Proxy
Теперь, когда Kafka REST Proxy установлен и запущен, вы можете использовать его для обмена сообщениями через REST API.
Для отправки сообщений используйте метод POST:
curl -X POST -H "Content-Type: application/vnd.kafka.json.v2+json" \
--data '{"records":[{"value":{"name":"Alice"}}]}' \
"http://localhost:8082/topics/partners"
Для получения сообщений используйте метод GET:
curl -X GET "http://localhost:8082/topics/test/partitions/0/messages"
Мы успешно установили и запустили Kafka REST Proxy на Debian 10 и можем использовать его для нашей распределенной системы обработки сообщений.
Частые вопросы
Какие сферы применения Apache Kafka?
Apache Kafka находит применение во многих областях, включая интеграцию данных, агрегацию журналов и многое другое.
Почему выбирать Kafka для Debian 10?
Kafka предлагает надежность и масштабируемость, что делает его идеальным выбором для Debian 10.
Какие советы по безопасности Kafka вы можете предоставить?
Обязательно настройте SSL и ACL для обеспечения безопасности Kafka на Debian 10.
Как масштабировать Kafka для роста?
Изучите возможности горизонтального и вертикального масштабирования для эффективного управления ростом.
Как проверить статус брокера Kafka?
Используйте команды Kafka для проверки статуса брокера и убедитесь в его нормальной работе.
Какие Java-переменные среды важны для Kafka?
Настройте переменные среды Java, такие как JAVA_HOME и JRE_HOME, для оптимальной работы Kafka.