一、前置准备:安装Java环境 Kafka依赖Java运行,需先安装OpenJDK(推荐11及以上版本)。执行以下命令:
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version # 验证安装(需显示Java版本信息)
二、前置准备:安装并配置Zookeeper Kafka通过Zookeeper实现集群协调,需先部署Zookeeper(单机模式即可满足基础需求):
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz
sudo mv apache-zookeeper-3.7.0 /opt/zookeeper
/opt/zookeeper/conf/zoo.cfg:sudo mkdir -p /opt/zookeeper/data
echo "dataDir=/opt/zookeeper/data
clientPort=2181" | sudo tee /opt/zookeeper/conf/zoo.cfg
3. 启动Zookeeper:
```bash
/opt/zookeeper/bin/zkServer.sh start # 启动服务
/opt/zookeeper/bin/zkServer.sh status # 验证状态(显示"Mode: standalone"即为成功)
三、下载并解压Kafka 从Apache官网下载最新稳定版本(如3.7.0),解压至指定目录:
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzvf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka
四、配置Kafka Broker(核心参数详解)
编辑Kafka配置文件/opt/kafka/config/server.properties,关键参数需根据实际环境调整:
broker.id=0(集群中每个Broker需唯一,单机模式设为0即可)。listeners=PLAINTEXT://your_server_ip:9092(Broker监听的本机IP和端口,需替换为实际IP);advertised.listeners=PLAINTEXT://your_public_ip:9092(对外暴露的地址,供客户端连接,若为本地测试可设为localhost)。log.dirs=/tmp/kafka-logs(日志存储路径,建议改为绝对路径如/opt/kafka/logs,并提前创建目录)。zookeeper.connect=localhost:2181(若Zookeeper部署在其他机器,需替换为对应IP)。num.network.threads=3(网络请求处理线程数,根据CPU核心数调整,建议2-4);num.io.threads=8(磁盘IO线程数,建议4-8);log.retention.hours=168(消息保留时间,7天,可根据需求调整为log.retention.bytes限制磁盘占用)。五、配置环境变量(可选但推荐) 为方便全局使用Kafka命令,将Kafka路径添加至环境变量:
echo "export KAFKA_HOME=/opt/kafka" >> ~/.bashrc
echo "export PATH=\$PATH:\$KAFKA_HOME/bin" >> ~/.bashrc
source ~/.bashrc # 使配置生效
六、启动Kafka服务 使用守护进程模式启动Kafka(避免终端关闭后进程终止):
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
验证Kafka是否启动成功:
netstat -tulnp | grep 9092 # 应显示Kafka监听9092端口
七、验证Kafka功能
/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
在生产者终端输入消息,消费者终端应能实时接收,验证Kafka通信正常。八、安全加固(可选但重要)
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp
sudo ufw reload
server.properties中的security.inter.broker.protocol、sasl.mechanism.inter.broker.protocol等参数,并配置JAAS文件。九、常见问题排查
ps -ef | grep kafka),或端口是否被占用(netstat -tulnp | grep 9092)。/opt/zookeeper/bin/zkServer.sh status),或zookeeper.connect配置是否正确。/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092),或消费者组是否正确。