Ubuntu环境下Kafka稳定运行的关键保障措施
sudo apt update && sudo apt install openjdk-11-jdk安装,验证java -version确认安装成功。zoo.cfg配置dataDir(数据目录)、clientPort(客户端端口,如2181)和server.x(集群节点地址,如server.1=zoo1:2888:3888),启动时执行bin/zkServer.sh start。server.properties中设置broker.id(集群内唯一,如0、1、2),listeners(Broker监听地址,如PLAINTEXT://0.0.0.0:9092),advertised.listeners(客户端连接的Broker地址,如PLAINTEXT://your_server_ip:9092)。log.dirs指定日志存储目录(如/var/lib/kafka/logs,需提前创建并赋权chown -R kafka:kafka /var/lib/kafka),zookeeper.connect指向Zookeeper集群(如localhost:2181或zoo1:2181,zoo2:2181,zoo3:2181)。export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"(根据服务器内存调整,建议占总内存的50%-70%);选择低延迟垃圾回收器(如G1GC),添加-XX:+UseG1GC参数。num.io.threads=8,建议为CPU核心数的50%);网络线程数(处理客户端请求,如num.network.threads=8,建议为CPU核心数的50%的2/3);日志分段大小(log.segment.bytes=1GB,避免频繁切换段文件);日志保留策略(log.retention.hours=72,根据业务需求设置,如72小时或7天)。compression.type=lz4,减少网络传输开销)、批量发送(batch.size=1MB,提升吞吐量)、等待延迟(linger.ms=100ms,平衡延迟与吞吐量);消费者增加单次拉取量(fetch.min.bytes=1MB)、调整拉取间隔(fetch.max.wait.ms=1000ms)、设置每次poll的最大记录数(max.poll.records=200,避免内存溢出)。replication.factor≥2,如--replication-factor 3),确保数据在多个Broker上冗余存储;Kafka自动进行Leader选举(当Leader Broker故障时,副本会接管成为新Leader)。kafka-topics.sh --describe查看Topic详情、kafka-consumer-groups.sh查看消费者组偏移量)。tail -f /var/lib/kafka/logs/server.log),及时发现错误(如磁盘空间不足、Zookeeper连接失败);设置日志轮转(通过log.retention.hours或log.retention.bytes限制日志大小),避免磁盘爆满。kafka-log-dirs.sh --clean,根据log.retention策略删除旧数据);备份Zookeeper数据(如定期复制dataDir目录到异地)。