在Debian系统上搭建Apache Kafka消息队列的步骤如下:
Kafka需要Java运行环境,首先安装OpenJDK:
sudo apt update
sudo apt install openjdk-11-jdk
验证安装:
java -version
从Apache Kafka官网下载最新版本的Kafka,并解压到指定目录:
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -xzf kafka_2.13-3.4.0.tgz
cd kafka_2.13-3.4.0
编辑Kafka的配置文件,主要涉及server.properties和zookeeper.properties。
编辑config/zookeeper.properties:
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
创建数据目录并启动Zookeeper:
sudo mkdir -p /var/lib/zookeeper
sudo chown -R $(whoami):$(whoami) /var/lib/zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
编辑config/server.properties:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/var/log/kafka
zookeeper.connect=localhost:2181
num.partitions=1
default.replication.factor=1
min.insync.replicas=1
启动Kafka服务器:
bin/kafka-server-start.sh config/server.properties
创建一个Topic用于测试:
bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
启动一个生产者发送消息:
bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
在控制台输入消息并按回车键发送。
启动一个消费者接收消息:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
你应该能看到之前发送的消息。
停止Kafka服务器:
bin/kafka-server-stop.sh
停止Zookeeper:
bin/zookeeper-server-stop.sh
如果你需要从其他机器访问Kafka,需要配置防火墙:
sudo ufw allow 9092/tcp
Kafka的日志文件位于logs目录下,可以使用以下命令查看日志:
tail -f logs/server.log
通过以上步骤,你可以在Debian系统上成功搭建并运行Apache Kafka消息队列。