在Debian上配置Kafka消息队列主要包括以下几个步骤:
Kafka是用Java编写的,因此需要先安装Java运行环境。可以使用以下命令在Debian上安装OpenJDK 8:
sudo apt update sudo apt install openjdk-8-jdk 安装完成后,可以使用以下命令验证Java是否安装成功:
java -version 可以从Apache Kafka官网下载Kafka的安装包,然后使用tar命令解压。例如,下载并解压Kafka 3.5.2版本:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz tar -zvxf kafka_2.12-3.5.2.tgz 为了方便使用Kafka命令,可以将Kafka的安装目录添加到系统的环境变量中。编辑/etc/profile文件,在文件末尾添加以下两行:
export KAFKA_HOME=/path/to/your/kafka_2.12-3.5.2 export PATH=$PATH:$KAFKA_HOME/bin 然后,使配置生效:
source /etc/profile 在Kafka 2.8.0版本以后,Kafka可以独立于Zookeeper运行。但是,为了简化配置,通常还是会配置Zookeeper。可以创建并配置Zookeeper服务文件:
sudo vi /lib/systemd/system/zookeeper.service 添加以下内容:
[Unit] Description=Zookeeper service After=network.target [Service] Type=simple Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jdk-16.0.1/bin" User=root Group=root ExecStart=/home/kafka_2.12-2.8.0/bin/zookeeper-server-start.sh /home/kafka_2.12-2.8.0/config/zookeeper.properties ExecStop=/home/kafka_2.12-2.8.0/bin/zookeeper-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target 然后,将Zookeeper服务加入到开机启动并启动测试:
sudo systemctl daemon-reload sudo systemctl enable zookeeper sudo systemctl start zookeeper sudo systemctl status zookeeper 创建并配置Kafka服务文件:
sudo vi /lib/systemd/system/kafka.service 添加以下内容:
[Unit] Description=Apache Kafka server (broker) After=zookeeper.service [Service] Type=simple Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jdk-16.0.1/bin" User=root Group=root ExecStart=/home/kafka_2.12-2.8.0/bin/kafka-server-start.sh /home/kafka_2.12-2.8.0/config/server.properties ExecStop=/home/kafka_2.12-2.8.0/bin/kafka-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target 然后,将Kafka服务加入到开机启动并启动测试:
sudo systemctl daemon-reload sudo systemctl enable kafka sudo systemctl start kafka sudo systemctl status kafka 可以使用以下命令创建一个主题并发送一些消息来验证Kafka是否配置成功:
kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 然后,创建一个生产者发送消息:
kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic 在另一个终端中,创建一个消费者接收消息:
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning 如果一切配置正确,消费者应该能够接收到生产者发送的消息。