sudo yum install java-1.8.0-openjdk-devel -y),并通过java -version验证安装。zookeeper.connect=zk1:2181,zk2:2181,zk3:2181),确保高可用。broker.id:每个Broker的唯一整数标识(集群内不可重复),建议使用主机名哈希或固定值(如broker.id=1)。listeners:指定Broker监听的协议与地址(如PLAINTEXT://your_server_ip:9092),务必使用内网IP避免暴露公网。advertised.listeners:客户端连接的地址(如PLAINTEXT://your_public_ip:9092),确保客户端能正确访问Broker。log.dirs:指定多个日志存储目录(如/data/kafka/logs1,/data/kafka/logs2),提升并行IO性能。zookeeper.connect:Zookeeper集群地址,建议配置3或5节点以实现容错。security.inter.broker.protocol=SASL_PLAINTEXT、sasl.enabled.mechanisms=PLAIN,并创建kafka_server_jaas.conf文件(包含用户名/密码),通过KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"启动时加载。ssl.keystore.location、ssl.truststore.location等参数启用SSL,保护数据传输安全(如listeners=SSL://your_server_ip:9093)。replication-factor(如--replication-factor 3),确保数据多副本存储,避免单点故障。kafka-topics.sh --describe --topic your_topic查看ISR数量,确保ISR副本数≥1(避免数据丢失)。unclean.leader.election.enable=false(默认值),避免非ISR副本成为leader导致数据不一致。noatime选项(减少元数据操作)。vm.swappiness=1(禁用swap,避免磁盘IO瓶颈)、vm.dirty_background_ratio=5(后台脏页刷新阈值)、vm.dirty_ratio=10(前台脏页刷新阈值),优化脏页刷新策略。ulimit -n 65536(增加文件描述符限制)、vm.max_map_count=262144(提升内存映射区域数量)。num.network.threads(处理网络请求的线程数,建议设置为CPU核数+1)、num.io.threads(处理磁盘IO的线程数,建议设置为CPU核数×2)。log.flush.interval.messages=10000(每1万条消息刷新一次磁盘)、log.flush.interval.ms=1000(每1秒刷新一次磁盘),平衡数据可靠性与性能。log.segment.bytes=1073741824(1GB,增大日志段大小减少文件切换次数,提升吞吐量)。num.replica.fetchers=2(副本同步线程数,提升副本同步效率)、replica.lag.time.max.ms=60000(副本同步超时时间,1分钟,避免因短暂网络问题触发重平衡)。batch.size=16384(批量发送大小,16KB,提升吞吐量)、linger.ms=10(等待10ms凑满批次,平衡延迟与吞吐量)、compression.type=snappy(启用Snappy压缩,减少网络传输与存储开销)。fetch.max.bytes=524288(每次拉取最大字节数,512KB)、max.poll.records=500(每次poll返回的最大记录数)、max.poll.interval.ms=300000(两次poll的最大间隔,5分钟,避免频繁rebalance)。systemctl status kafka、systemctl status zookeeper监控服务状态;通过kafka-topics.sh --list查看Topic列表,kafka-consumer-groups.sh --describe --group your_group查看消费组延迟。log.retention.hours=168保留7天日志),定期清理log.dirs目录下的旧日志,避免磁盘空间耗尽。/etc/systemd/system/kafka.service),内容如下:[Unit]
Description=Apache Kafka Server
After=network.target zookeeper.service
[Service]
Type=simple
User=kafka
Group=kafka
Environment="KAFKA_HOME=/opt/kafka"
Environment="KAFKA_OPTS=-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf"
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
然后执行systemctl enable kafka、systemctl start kafka设置开机自启。