Как установить Apache Kafka на CentOS 8
В этом руководстве мы покажем вам, как установить Apache Kafka на CentOS 8. Для тех из вас, кто не знал, pache Kafka — это агент распределенных сообщений, предназначенный для эффективной работы с огромными объемами информации в реальном времени. В отличие от традиционных агентов, таких как ActiveMQ и RabbitMQ, Kafka функционирует как связка из одного или нескольких серверов, что делает его хорошо масштабируемым, а из-за распределенного характера он обладает встроенной отказоустойчивостью, обеспечивая при этом большую пропускную способность по сравнению с его аналогами.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить sudo к командам для получения привилегий root. Я покажу вам пошаговую установку Apache Kafka на сервере CentOS 8.
Установите Apache Kafka на CentOS 8
Шаг 1. Сначала давайте начнем с проверки актуальности вашей системы.
sudo dnf update
Шаг 2. Установка Java.
Apache Kafka требует, чтобы на вашем сервере была установлена Java. Вы можете установить OpenJDK на свой компьютер, выполнив следующую команду:
sudo dnf install java-11-openjdk
Проверьте версию Java, выполнив следующую команду:
java -version
Шаг 3. Установка Apache Kafka на CentOS 8.
Сначала загрузите и извлеките Kafka с веб-сайта Apache. Вы можете использовать wget для загрузки Kafka:
wget http://www-us.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz
Затем распакуйте архивный файл:
tar xzf kafka_2.13-2.4.0.tgz mv kafka_2.13-2.4.0 /usr/local/kafka
Шаг 4. Настройте файлы модулей Kafka Systemd.
Сначала создайте файл модуля systemd для Zookeeper с помощью следующей команды:
nano /etc/systemd/system/zookeeper.service
Добавьте ниже содержание:
[Unit] Description=Apache Zookeeper server Documentation=http://zookeeper.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Затем, чтобы создать файл модуля Kafka systemd, используйте следующую команду:
nano /etc/systemd/system/kafka.service
Добавьте приведенный ниже контент:
[Unit] Description=Apache Kafka Server Documentation=http://kafka.apache.org/documentation.html Requires=zookeeper.service [Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk" ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
Перезагрузите демон systemd, чтобы изменения вступили в силу:
systemctl daemon-reload
Шаг 5. Запустите сервер Kafka.
Kafka требуется ZooKeeper, поэтому сначала запустите сервер ZooKeeper в вашей системе:
sudo systemctl start zookeeper
Затем запустите сервер Kafka и просмотрите текущий статус:
sudo systemctl start kafka sudo systemctl status kafka
Шаг 6. Создание тем в Apache Kafka.
«Производитель» — это процесс, отвечающий за размещение данных в нашей Kafka. Kafka поставляется с клиентом командной строки, который будет принимать входные данные из файла или стандартного ввода и отправлять их в виде сообщений в кластер Kafka:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic NewTopic.
Вы можете создать несколько тем, выполнив ту же команду, что и выше. После этого вы можете увидеть созданные темы в Kafka, выполнив следующую команду:
bin/kafka-topics.sh --list --zookeeper localhost:2181 NewTopic KafkaonCentOS8 KafkaonCentOS8
Шаг 7. Производитель и потребитель Apache Kafka.
Давайте запустим производителя, а затем введем в консоль несколько сообщений для отправки на сервер:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic NewTopic >Welcome to kafka >This is my new topic >
У Kafka также есть потребитель командной строки для чтения данных из кластера Kafka и вывода сообщений на стандартный вывод:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic NewTopic --from-beginning Welcome to kafka This is my new topic