一、基础环境配置诀窍
sudo yum install java-1.8.0-openjdk-devel -y)。安装后通过java -version验证,确保环境变量配置正确。dataDir(数据目录)、clientPort(客户端端口,如2181),并在Kafka的server.properties中正确设置zookeeper.connect(如zk1:2181,zk2:2181,zk3:2181)。二、Kafka核心配置技巧
broker.id:每个broker的唯一整数标识(集群内不可重复),建议设置为有意义的数字(如节点序号)。listeners:broker监听的协议及地址(如PLAINTEXT://your_server_ip:9092),若需远程访问,需将your_server_ip替换为公网或内网IP。advertised.listeners:客户端连接时使用的地址(如PLAINTEXT://your_public_ip:9092),确保客户端能正确解析broker地址。log.dirs:指定多个日志存储目录(如/data/kafka1,/data/kafka2),提升磁盘并行写入性能。log.retention.hours:设置日志保留时间(如168小时,即7天),避免磁盘空间耗尽;也可结合log.retention.bytes(单分区最大日志大小)控制。log.segment.bytes:单个日志段文件大小(如1GB),过大或过小都会影响日志清理效率。num.partitions:创建topic时的分区数(如3),建议根据消费者线程数设置(如消费者有3个线程,则分区数≥3),提升并行处理能力。default.replication.factor:默认副本因子(如3),确保数据冗余(至少3个副本),提高容错性;需根据集群规模调整(副本数越多,可靠性越高,但网络开销越大)。三、安全配置要点
server.properties中设置security.inter.broker.protocol=SASL_PLAINTEXT、sasl.enabled.mechanisms=PLAIN、sasl.mechanism.inter.broker.protocol=PLAIN。kafka_server_jaas.conf):内容如下:KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_producer="producer-secret"
user_consumer="consumer-secret";
};
export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"。sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
sudo firewall-cmd --reload
四、性能调优技巧
vm.swappiness=1(避免频繁swap,影响性能)。vm.dirty_background_ratio=10(后台刷新脏页的阈值)、vm.dirty_ratio=60(强制刷新脏页的阈值)。fs.aio-max-nr=1048576(提升磁盘I/O并发能力)。num.network.threads=CPU核数+1(处理网络请求的线程数)、num.io.threads=CPU核数*2(处理磁盘I/O的线程数)。batch.size=1MB(批量发送的消息大小)、linger.ms=100(等待批量发送的时间)、compression.type=lz4(启用LZ4压缩,提升吞吐量)。-Xms4G -Xmx4G(初始堆大小与最大堆大小一致,避免频繁扩容)。-XX:+UseG1GC),适合大内存场景,减少GC停顿时间。五、监控与维护建议
kafka.service),设置WantedBy=multi-user.target,实现系统启动时自动启动服务。log.retention.hours=168),避免磁盘空间不足;可通过kafka-log-dirs.sh工具手动检查日志段大小。