在Debian系统上配置Apache Kafka的步骤如下:
Kafka是用Java编写的,因此需要先安装Java运行环境。可以使用以下命令在Debian上安装OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
安装完成后,可以使用以下命令验证Java是否安装成功:
java -version
从Apache Kafka的官方网站下载最新版本的Kafka压缩包。例如,下载Kafka 3.5.2版本:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
解压下载的tar.gz文件:
tar -xzf kafka_2.12-3.5.2.tgz
将解压后的目录移动到一个合适的位置,例如 /opt/kafka
:
sudo mv kafka_2.12-3.5.2 /opt/kafka
编辑 /etc/profile
文件,添加Kafka的安装目录和命令文件所在目录到环境变量中:
sudo nano /etc/profile
在文件末尾添加以下两行:
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
使环境变量生效:
source /etc/profile
进入Kafka目录并进行基本配置:
cd /opt/kafka
nano config/server.properties
编辑 server.properties
文件,设置以下关键配置项:
broker.id
: 唯一标识Kafka broker的ID。listeners
: Kafka监听的地址和端口。log.dirs
: Kafka日志存储目录。zookeeper.connect
: Zookeeper连接字符串。例如:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
Kafka依赖Zookeeper,所以你需要先启动Zookeeper:
/opt/kafka/bin/zookeeper-server-start.sh config/zookeeper.properties
在另一个终端窗口中启动Kafka服务器:
/opt/kafka/bin/kafka-server-start.sh config/server.properties
创建一个测试主题并查看其信息:
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
/opt/kafka/bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
停止Kafka服务器:
/opt/kafka/bin/kafka-server-stop.sh
停止Zookeeper:
/opt/kafka/bin/zookeeper-server-stop.sh
使用systemd来设置Kafka和Zookeeper的开机自启动服务。创建Zookeeper服务文件:
sudo nano /etc/systemd/system/zookeeper.service
添加以下内容:
[Unit]
Description=Zookeeper Server
After=network.target
[Service]
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
创建Kafka服务文件:
sudo nano /etc/systemd/system/kafka.service
添加以下内容:
[Unit]
Description=Kafka Server
After=zookeeper.service
[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
sudo systemctl enable kafka
sudo systemctl start kafka