1. 系统环境准备
sudo yum install java-1.8.0-openjdk-devel -y
安装,安装后用java -version
验证是否成功。zookeeper.properties
中的dataDir
和clientPort
)。2. Kafka配置文件优化(server.properties)
broker.id
需设置为集群中唯一的整数(如0、1);listeners
指定Broker监听的协议和地址(如PLAINTEXT://your_server_ip:9092
);advertised.listeners
需设置为外部客户端可访问的地址(如PLAINTEXT://your_public_ip:9092
),确保客户端能正确连接。log.dirs
指定Kafka日志存储目录(如/var/lib/kafka/logs
),建议使用独立分区并挂载为XFS文件系统(开启noatime
选项);zookeeper.connect
填写Zookeeper集群地址(如localhost:2181
或zk1:2181,zk2:2181,zk3:2181
)。num.partitions
设置主题的初始分区数(建议与消费者线程数匹配,如4-8个);default.replication.factor
设置副本数(生产环境建议≥3,以提高数据可靠性,但会增加网络开销)。3. 操作系统性能调优
/etc/sysctl.conf
文件,设置vm.swappiness=1
(减少swap使用,避免磁盘IO瓶颈);vm.dirty_background_ratio=10
、vm.dirty_ratio=60
(控制脏页刷新时机,平衡磁盘IO与写入性能);net.core.rmem_default=262144
、net.core.wmem_default=262144
(调整网络缓冲区大小,提高网络吞吐量);net.ipv4.tcp_wmem=4096 16384 4194304
、net.ipv4.tcp_rmem=4096 87380 4194304
(优化TCP缓冲区,提升网络传输效率);vm.max_map_count=655360
(增加内存映射区域数量,支持更多并发连接)。noatime
选项(减少文件访问时间记录,降低磁盘IO)。4. 资源分配与硬件选择
-Xmx4G -Xms4G
);使用多核CPU(建议≥4核),Kafka的多线程模型能有效利用多核资源。5. 安全配置
security.inter.broker.protocol=SASL_PLAINTEXT
、sasl.enabled.mechanisms=PLAIN
,并通过kafka_server_jaas.conf
文件设置用户名密码;生产环境建议启用SSL/TLS加密(listeners=SASL_SSL://your_server_ip:9092
),保护数据传输安全。firewall-cmd
命令添加规则:sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
、sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent
,然后执行sudo firewall-cmd --reload
使规则生效。6. 监控与维护
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
)。log.retention.ms
设置日志保留时间,如168h
表示保留7天);使用log.cleanup.policy=delete
(删除旧日志)或compact
(压缩日志,适用于变更日志场景)策略,避免磁盘空间耗尽。/etc/systemd/system/kafka.service
),配置Kafka和Zookeeper开机自动启动,确保系统重启后服务自动恢复。