【Kafka】Broker之Server.properties的重要參數說明


名稱 描述 類型 默認值 有效值區間 重要程度
zookeeper.connect zk地址 string
advertised.host.name 過時的:只有當advertised.listeners或listeners沒有配置的時候才會生效。使用advertised.listeners代替。發布在zk上的hostname,供客戶端使用。在IaaS環境下,該值需要與broker綁定的接口不一樣。如果該值沒有配置,會使用配置的host.name。否則會使用java.net.InetAddress.getCanonicalHostName()返回的數據。 string null
advertised.listeners 發布在zk上的監聽器,供客戶端使用,如果與其他的監聽器不一樣的話。在Iaas環境下,該值需要與broker綁定的接口不一致。如果沒有配置,會使用listener的值。 string null
advertised.port 過時的:只有當advertised.listeners或listeners沒有配置時會生效。可以使用advertised.listeners代替。發布在zk上的端口,供客戶端使用。在Iaas環境下,需要與broker綁定的接口不一樣。如果未配置,會發布與broker綁定的一樣的接口。 int null
auto.create.topics.enable 允許在服務器上自動創建主題(topic) boolean true
auto.leader.rebalance.enable 允許自動主平衡。后台線程定時校驗和觸發主平衡。 boolean true
background.threads 后台處理任務的線程數 int 10 [1...]
broker.id 服務器的broker編號。如果不配置,會自動生成唯一的id。為了避免zk生成的broker編碼和用戶配置編碼的沖突,生成的broker編碼從reserved.broker.max.id + 1開始。 int -1
compression.type 指定一個主題最后的壓縮類型。這個配置項接收標准的壓縮編碼(gzip,snappy,lz4)。還可以配置為uncompressed,表示不壓縮。也可以配置為producer,表示與生產者配置的壓縮類型一致。 string producer
delete.topic.enable 可以刪除主題。如果設置為關閉,那么通過管理工具刪除主題是無效的。 boolean false
host.name 過時的:只有當listeners沒有配置時才會生效。使用listeners來代替。broker的主機名稱。如果配置該項,broker只會綁定到這個地址,如果不配置,會綁定所有接口。 string ""
leader.imbalance.check.interval.seconds 控制器觸發分區調整校驗的頻率。 long 300
leader.imbalance.per.broker.percentage 每個broker允許的不平衡的leader的比率。如果每個broker超過了這個值,控制器會觸發leader的平衡。這個值表示百分比。 int 10
listeners 監聽器列表-逗號隔開,包含協議和鏈接。如果想綁定到所有的接口,需要把主機名設置為0.0.0.0。如果要綁定到特定的接口,主機名為空。示例:PLAINTEXT://myhost:9092,TRACE://:9091或者PLAINTEXT://0.0.0.0:9092, TRACE://localhost:9093 string null
log.dir 日志數據存儲的目錄(log.dirs屬性的補充) string /tmp/kafka-logs
log.dirs 日志文件存儲的目錄,如果不配置,則使用log.dir。 string null
log.flush.interval.messages 在消息刷到磁盤之前,日志分區收集的消息數量 long 9223372036854775807
log.flush.interval.ms 主題中消息在刷到磁盤之前,保存在內存中的最長時間,單位是ms,如果不配置,使用log.flush.scheduler.interval.ms的配置 long null
log.flush.offset.checkpoint.interval.ms 更新上次刷磁盤的記錄的頻率,可以作為日志恢復點 int 60000 [0...]
log.flush.scheduler.interval.ms 單位為毫秒,日志刷新器檢查日志是否需要刷到磁盤的頻率 long 9223372036854775807
log.retention.bytes 日志被刪除前最大量 long -1
log.retention.hours 日志保留的最大小時數,log.retention.ms的第三位 int 168
log.retention.minutes 日志文件保留的分鍾數,log.retention.ms的第二位,如果不配,使用log.retention.hours int null
log.retention.ms 日志文件保留的毫秒數,如果不配,使用log.retention.minutes long null
log.roll.hours 即使文件沒有到達log.segment.bytes,只要文件創建時間到達此屬性,就會創建新文件。 int 168 [1...]
log.roll.jitter.hours 指定日志切分段的小時數,避免日志切分時造成驚群 int 0 [0...]
log.roll.jitter.ms 指定日志切分段的毫秒數,如果不設置,默認使用log.roll.jitter.hours long null
log.roll.ms 數據文件切分的時間間隔,與大小限制同時起作用的 long null
log.segment.bytes 數據文件大小 int 1073741824 [14...]
log.segment.delete.delay.ms 保存已刪除日志的時間 long 60000 [0...]
message.max.bytes 表示log中能夠容納消息的最大字節數 int 1000012 [0,...]
min.insync.replicas 該屬性規定了最小的ISR數 int 1 [1,...]
num.io.threads 執行磁盤IO的線程數 int 8 [1,...]
num.network.threads 處理網絡請求的線程數 int 3 [1,...]
num.recovery.threads.per.data.dir 啟停時做日志恢復每個目錄所需的線程數,采用RAID的時候可以增大該值 int 1 [1,...]
num.replica.fetchers 從leader備份數據的線程數。該值越大,從broker的IO同步能力越強。 int 1
offset.metadata.max.bytes 客戶端保留offset信息的最大空間大小 int 4096
offsets.commit.required.acks 在offset commit可以接受之前,需要設置確認的數目,一般不需要更改 short -1
offsets.commit.timeout.ms 只有所有replicas收到提交或者達到這個超時值,否則偏移量提交延遲。 int 5000 [1,...]
offsets.load.buffer.size 將偏移量加載到緩存中時,從偏移量區讀取的大小限制。 int 5242880 [1,...]
offsets.retention.check.interval.ms 檢查舊的偏移量的頻率,單位是毫秒 long 600000 [1,...]
offsets.retention.minutes 偏移量主題的日志保留窗口,單位是分鍾 int 1440 [1,...]
offsets.topic.compression.codec 偏移量主題的壓縮編碼,壓縮可以用於原子提交 int 0
offsets.topic.num.partitions 偏移量提交主題的分區數量(部署后不應該修改) int 50 [1,...]
offsets.topic.replication.factor 偏移量主題的復制因子(盡量設置高點,保證可用性)。為了確保偏移量主題的有效復制因子是配置的值,活躍kafka集群的數量至少是第一次請求偏移量時的復制因子。如果不是,要么創建偏移量主題會失敗,要么會獲得一個最小量(活躍集群,配置的復制因子) short 3 [1,...]
offsets.topic.segment.bytes 偏移量主題的分區大小應該設置相對小,為了保證更快的日志壓縮和緩存加載 int 104857600 [1,...]
port 過時的:只有當listener沒有配置時才會生效,是指監聽和獲取連接的端口。 int 9092
queued.max.requests 加入隊列的最大請求數(超過該值,network thread阻塞) int 500 [1,...]
quota.consumer.default 如果不同的消費者的每秒消費速度超過了這個值,就會被控制速度。 long 9223372036854775807 [1,...]
quota.producer.default 如果任何生產者的生產速度超過了這個值,就會被控制速率。 long 9223372036854775807 [1,...]
replica.fetch.max.bytes 一次性獲取的消息數量的最大限制 int 1048576
replica.fetch.min.bytes 一次性獲取的消息數量的最小值,如果達不到這個值,需要等待最多replicaMaxWaitTimeMs int 1
replica.fetch.wait.max.ms 每個消費請求的最大等待時間,這個值應該總是小於replica.lag.time.max.ms,以防止因為低吞吐量的主題,導致的頻繁減少ISR的數量 int 500
replica.high.watermark.checkpoint.interval.ms 每個replica檢查是否將最高水位進行固化的頻率 long 5000
replica.lag.time.max.ms 如果一個follower在這個時間內沒有發送fetch請求,leader將從ISR重移除這個follower,並認為這個follower已經掛了 long 10000
replica.socket.receive.buffer.bytes 備份時向leader發送網絡請求時的socket receive buffer int 65536
replica.socket.timeout.ms 網絡連接超時。這個值應該至少為replica.fetch.wait.max.ms int 30000
request.timeout.ms 這個配置控制客戶端等待響應的最大時間。如果在規定時間內沒有響應,客戶端會根據需要重新發起請求。如果超過了重試次數,客戶端會將這次請求置為失敗。 int 30000
socket.receive.buffer.bytes socket用於接收網絡請求的緩存大小 int 102400
socket.request.max.bytes server允許的最大請求尺寸; 這將避免server溢出,它應該小於Java heap size int 104857600 [1,...]
socket.send.buffer.bytes SO_SNDBUFF 緩存大小,server進行socket 連接所用 int 102400
unclean.leader.election.enable 指明了是否能夠使不在ISR中replicas設置用來作為leader,盡管這么做可能會導致數據丟失 boolean true
zookeeper.connection.timeout.ms 客戶端等待連接到zk的最大時間。如果不設置,系統默認使用zookeeper.session.timeout.ms int null
zookeeper.session.timeout.ms zk的session超時時間 int 6000
zookeeper.set.acl 設置客戶端使用zk的安全策略ACLs boolean false
broker.id.generation.enable 是否啟用集群機器id自動生成?如果啟用,會檢查配置的reserved.broker.max.id boolean true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM