以下是Linux Kafka配置中關鍵參數,分服務端和客戶端兩類說明:
broker.id
listeners
/advertised.listeners
listeners
:Broker監聽的地址和端口(如PLAINTEXT://0.0.0.0:9092
)。advertised.listeners
:客戶端實際連接地址,需配置為可訪問的IP和端口,支持多協議(如SSL、SASL)。log.dirs
num.network.threads
/num.io.threads
num.network.threads
:處理網絡請求的線程數,建議設置為CPU核心數。num.io.threads
:處理磁盤I/O的線程數,建議設置為CPU核心數×2。log.retention.hours
/log.retention.bytes
log.retention.hours
默認168小時(7天),log.retention.bytes
可限制單個分區日志大小。default.replication.factor
zookeeper.connect
bootstrap.servers
acks
0
(不等待確認,吞吐量高但可能丟消息)、1
(僅Leader確認)、all
(所有副本確認,最可靠)。batch.size
/linger.ms
batch.size
:批次大?。ㄗ止潱?,默認16KB,增大可提升吞吐量。linger.ms
:等待批次填滿的時間(毫秒),默認0,增大可減少請求頻率。retries
/enable.idempotence
retries
:失敗重試次數,默認0,建議設置為>0并配合enable.idempotence=true
避免重復消息。enable.idempotence
:是否啟用冪等性,確保消息不重復(需配合acks=all
)。bootstrap.servers
group.id
auto.offset.reset
earliest
(從最早消息開始)、latest
(從最新消息開始)。fetch.min.bytes
/fetch.max.wait.ms
fetch.min.bytes
:單次拉取的最小字節數,默認1,增大可減少請求頻率。fetch.max.wait.ms
:等待滿足fetch.min.bytes
的最長時間,默認500ms。num.partitions
:Topic默認分區數,影響并行度,建議設置為集群節點數的倍數。offsets.topic.replication.factor
:消費者偏移量Topic的副本數,集群環境建議設置為節點數。log.segment.bytes
:單個日志段文件大小,默認1GB,影響日志滾動頻率。以上參數直接影響Kafka的性能、可靠性和可用性,生產環境中需根據業務需求調整[1,2,3,4,5,6,7,8,9,10,11]。