一、基础环境准备
sudo apt update && sudo apt install -y openjdk-11-jdkjava -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,添加以下内容:dataDir=/opt/zookeeper/data clientPort=2181 initLimit=10 syncLimit=5 server.0=localhost:2888:3888 # 单机部署可简化,集群需配置多个节点 /opt/zookeeper/bin/zkServer.sh start,验证端口:netstat -nap | grep 2181。二、Kafka Broker核心配置
/opt目录: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。broker.id=0(集群中需唯一);listeners=PLAINTEXT://:9092(本地测试);advertised.listeners=PLAINTEXT://your_server_ip:9092(生产环境需替换为公网IP或域名,确保客户端可访问);log.dirs=/var/lib/kafka/logs(需提前创建目录并赋权:sudo mkdir -p /var/lib/kafka/logs && sudo chown -R kafka:kafka /var/lib/kafka);zookeeper.connect=localhost:2181(集群需填写所有Zookeeper节点地址,如localhost:2181,localhost:2182,localhost:2183);num.partitions=3(根据消费者并行需求设置,建议与消费者线程数匹配);default.replication.factor=1(生产环境建议设为3,确保数据冗余)。三、操作系统级优化
echo "kafka soft nofile 65535\nkafka hard nofile 65535" | sudo tee -a /etc/security/limits.conf/etc/sysctl.conf,添加以下内容提升网络和磁盘性能:vm.swappiness=10 # 减少内存交换 vm.dirty_background_ratio=5 # 脏页刷新阈值 vm.dirty_ratio=10 # 强制刷新阈值 net.core.somaxconn=1024 # socket连接队列长度 net.ipv4.tcp_max_syn_backlog=8192 # TCP SYN队列长度 生效命令:sudo sysctl -p。四、启动与验证
/opt/zookeeper/bin/zkServer.sh start;/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties(-daemon表示后台运行)。/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test(使用--bootstrap-server替代旧版的--zookeeper,更符合新版本规范);/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。五、进阶优化建议
/opt/kafka/bin/kafka-server-start.sh,调整堆内存大小(根据服务器内存调整,建议占总内存的1/4-1/2):export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"export KAFKA_JVM_PERFORMANCE_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35"。batch.size=1048576=1MB)、延长发送延迟(linger.ms=100)、启用压缩(compression.type=LZ4),提升吞吐量;fetch.min.bytes=1048576=1MB)、调整拉取等待时间(fetch.max.wait.ms=1000),平衡延迟与吞吐量。log.retention.hours=72,保留72小时),定期清理旧日志;/opt/zookeeper/data)和Kafka日志目录(/var/lib/kafka/logs),防止数据丢失。