1. 操作系統層實用配置
noatime
(禁用文件訪問時間更新)、nodiratime
(禁用目錄訪問時間更新)參數,減少不必要的磁盤I/O。vm.swappiness=1
(默認60),降低系統使用Swap的概率,避免因內存不足導致頻繁磁盤交換,影響Kafka性能。/etc/security/limits.conf
,增加Kafka進程的文件描述符限制(如* soft nofile 100000
、* hard nofile 100000
),避免因連接數過多導致服務中斷。2. Kafka Broker核心配置
broker.id
必須為集群內唯一整數(如0、1、2);listeners
設置為PLAINTEXT://your_server_ip:9092
(非加密場景)或SASL_PLAINTEXT://your_server_ip:9092
(加密場景);advertised.listeners
需指向客戶端可訪問的地址(如公網IP或域名),確??蛻舳四苷_連接。log.dirs
需指定多個物理磁盤路徑(如/data1/kafka,/data2/kafka
),分散I/O壓力,避免單磁盤成為瓶頸。zookeeper.connect
需填寫Zookeeper集群地址(如zk1:2181,zk2:2181,zk3:2181
),建議使用奇數個節點(3或5個)保證高可用。3. 性能優化關鍵參數
num.partitions
(分區數)需根據消費者線程數調整(建議與消費者線程數相等或略多),提升并行處理能力;default.replication.factor
(默認副本因子)設置為3(生產環境),保證數據冗余和高可用。batch.size
(批量發送字節數)設置為1MB(生產者),平衡吞吐量與延遲;linger.ms
(發送等待時間)設置為100ms以上,允許更多消息合并;compression.type
(壓縮類型)設置為lz4
(兼顧壓縮率與速度),減少網絡傳輸和磁盤I/O。num.io.threads
(I/O線程數)設置為CPU核心數的2倍(如8核CPU設置為16),處理磁盤讀寫和網絡傳輸;buffer.memory
(內存緩沖區)設置為64MB以上(生產環境建議128MB),避免生產者因緩沖區滿而阻塞。4. 安全配置建議
security.inter.broker.protocol=SASL_PLAINTEXT
、sasl.enabled.mechanisms=PLAIN
,并創建kafka_server_jaas.conf
文件(包含用戶名/密碼),啟動時通過KAFKA_OPTS
指定該文件。listeners=SASL_SSL://your_server_ip:9092
、security.inter.broker.protocol=SASL_SSL
,并提供證書文件(如kafka.truststore.jks
、kafka.keystore.jks
),確保數據傳輸安全。5. 監控與維護實用建議
log.retention.hours
(日志保留時間)設置為168小時(7天)或更短(根據業務需求),log.cleanup.policy
(清理策略)設置為delete
(刪除舊數據)或compact
(壓縮重復數據,適用于日志場景),避免磁盤空間耗盡。server.log
),排查IO exception
等錯誤;每月清理過期日志,確保磁盤空間充足(建議使用率<70%)。