一、基础环境准备
sudo apt update && sudo apt install -y openjdk-11-jdk 验证安装:java -version(需显示Java版本信息)。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):tickTime=2000 dataDir=/var/lib/zookeeper # 数据目录(需提前创建:sudo mkdir -p /var/lib/zookeeper) clientPort=2181 initLimit=5 syncLimit=2 server.1=your_server_ip:2888:3888 # 集群模式下需配置多个节点 sudo /opt/zookeeper/bin/zkServer.sh start 验证状态:sudo /opt/zookeeper/bin/zkServer.sh status(需显示“Mode: leader”或“Mode: follower”)。二、Kafka核心配置(server.properties) 编辑/opt/kafka/config/server.properties(以单节点为例),关键参数如下:
broker.id=0(集群中每个Broker需唯一);listeners=PLAINTEXT://your_server_ip:9092(替换为服务器公网/内网IP);advertised.listeners=PLAINTEXT://your_server_ip:9092(客户端连接的地址);log.dirs=/var/lib/kafka/logs(需提前创建:sudo mkdir -p /var/lib/kafka/logs,并赋予权限:sudo chown -R kafka:kafka /var/lib/kafka/logs);zookeeper.connect=your_server_ip:2181(集群模式下用逗号分隔多个节点,如ip1:2181,ip2:2181,ip3:2181);log.retention.hours=168(日志保留7天,可根据需求调整);num.partitions=3(默认分区数,根据业务负载调整)、default.replication.factor=1(单节点设为1,集群设为≥2)。三、系统优化配置
/opt/kafka/bin/kafka-server-start.sh,设置堆内存(根据服务器内存调整,建议占总内存的1/4-1/2):export KAFKA_HEAP_OPTS="-Xms2G -Xmx2G" # 初始堆内存2G,最大堆内存2G 可选:添加垃圾回收器参数(如G1):-XX:+UseG1GC。echo "kafka soft nofile 65536" | sudo tee -a /etc/security/limits.conf echo "kafka hard nofile 65536" | sudo tee -a /etc/security/limits.conf echo "net.core.somaxconn=32768" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_max_syn_backlog=16384" | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 生效配置 noatime选项(减少磁盘IO)。四、开机自启配置 创建systemd服务文件,实现Kafka与Zookeeper开机自动启动:
/etc/systemd/system/zookeeper.service):[Unit] Description=Apache Zookeeper server After=network.target [Service] Type=simple User=kafka ExecStart=/opt/zookeeper/bin/zkServer.sh start-foreground Restart=always RestartSec=5 [Install] WantedBy=multi-user.target /etc/systemd/system/kafka.service):[Unit] Description=Apache Kafka Server After=zookeeper.service Requires=zookeeper.service [Service] Type=simple User=kafka ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties ExecStop=/opt/kafka/bin/kafka-server-stop.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl enable zookeeper kafka sudo systemctl start zookeeper kafka 五、稳定运行维护
sudo systemctl status kafka;/opt/kafka/bin/kafka-topics.sh --describe --bootstrap-server your_server_ip:9092;/opt/kafka/bin/kafka-consumer-groups.sh --bootstrap-server your_server_ip:9092 --describe。log.retention.hours=168保留7天),定期清理旧日志;使用logrotate工具自动化日志轮转。/var/lib/zookeeper)和Kafka日志目录(/var/lib/kafka/logs),避免数据丢失。