配置引數
引數說明
broker.id =1
每乙個broker在集群中的唯一標示,要求是正數。當該伺服器的
ip位址發生改變時,如果broker.id沒有變化,則不會影響consumer
s的訊息情況
log.dirs=/log/kafka-logs
kafka資料的存放位址,多個位址的話用逗號分割/log/kafkalogs-1,/log/kafka-logs-2
port =9092
broker server服務埠
message.max.bytes =6525000
表示訊息體的最大大小,單位是位元組
num.network.threads =4
broker處理訊息的最大執行緒數,一般情況下不需要去修改
background.threads =4
一些後台任務處理的執行緒數,例如過期訊息檔案的刪除等,一般
情況下不需要去做修改
queued.max.requests =500
等待io執行緒處理的請求佇列最大數,若是等待io的請求超過這個
數值,那麼會停止接受外部訊息,是一種自我保護機制
host.name
broker的主機位址,若是設定了,那麼會繫結到這個位址上,若
是沒有,會繫結到所有的介面上,並將其中之一傳送到zk,一般
不設定socket.send.buffer.bytes=100*1024
socket的傳送緩衝區,socket的調優引數so_sndbuff
socket.receive.buffer.bytes =100*1024
socket的接受緩衝區,socket的調優引數so_rcvbuff
socket.request.max.bytes =100*1024*1024
socket請求的最大數值,防止serveroom,message.max.byte
s必然要小於socket.request.max.bytes,會被topic建立時
的指定引數覆蓋
log.segment.bytes =1024*1024*1024
topic的分割槽是以一堆segment檔案儲存的,這個控制每個segment的大小,會被topic建立時的指定引數覆蓋
log.roll.hours =24*7
這個引數會在日誌segment沒有達到log.segment.bytes設定的大小,也會強制新建乙個segment會被 topic建立時的指定引數
覆蓋log.cleanup.policy = delete
日誌清理策略選擇有:delete和compact主要針對過期資料的處
理,或是日誌檔案達到限制的額度,會被 topic建立時的指定參
數覆蓋log.retention.minutes=3days
資料儲存的最大時間超過這個時間會根據log.cleanup.policy
設定的策略處理資料,也就是消費端能夠多久去消費資料,log.retention.bytes和log.retention.minutes任意乙個達
到要求,都會執行刪除,會被topic建立時的指定引數覆蓋
log.retention.bytes=-1
topic每個分割槽的最大檔案大小,乙個topic的大小限制 =分割槽數
*log.retention.bytes。-1表示沒有大小限
log.retention.check.interval.ms=5minutes
檔案大小檢查的週期時間,檢查是否需要觸發 log.cleanup.policy中設
置的策略
log.cleaner.enable=false
是否開啟日誌壓縮
log.cleaner.threads = 2
日誌壓縮執行的執行緒數
log.cleaner.io.max.bytes.per.second=none
日誌壓縮時候處理的最大大小
log.cleaner.dedupe.buffer.size=500*1024*1024
日誌壓縮去重時候的快取空間,在空間允許的情況下,越大越好
log.cleaner.io.buffer.size=512*1024
日誌清理時候用到的io塊大小,一般不需要修改
log.cleaner.io.buffer.load.factor =0.9
日誌清理中hash表的擴大因子,一般不需要修改
log.cleaner.backoff.ms =15000
檢查是否觸發日誌清理的間隔
log.cleaner.min.cleanable.ratio=0.5
日誌清理的頻率控制,越大意味著更高效的清理,同時會存在一
些空間上的浪費,會被topic建立時的指定引數覆蓋
log.cleaner.delete.retention.ms =1day
對於壓縮的日誌保留的最長時間,也是客戶端消費訊息的最長時間,同log.retention.minutes的區別在於乙個控制未壓縮資料,乙個控制壓縮後的資料。會被topic建立時的指定引數覆蓋
log.index.size.max.bytes =10*1024*1024
對於segment日誌的索引檔案大小限制,會被topic建立時的指定
引數覆蓋
log.index.interval.bytes =4096
當執行乙個fetch操作後,需要一定的空間來掃瞄最近的offset大小,設定越大,代表掃瞄速度越快,但是也更耗記憶體,一般情況下不需要搭理這個引數
log.flush.interval.messages=none
log檔案」sync」到磁碟之前累積的訊息條數,因為磁碟io操作是乙個慢操作,但又是乙個」資料可靠性"的必要手段,所以此引數的設定,需要在"資料可靠性"與"效能"之間做必要的權衡.如果此值過大,將會導致每次"fsync"的時間較長(io阻塞),如果此值過小,將會導致"fsync"的次數較多,這也意味著整體的client請求有一定的延遲.物理server故障,將會導致沒有fsync的訊息丟失.
log.flush.scheduler.interval.ms =3000
檢查是否需要固化到硬碟的時間間隔
log.flush.interval.ms = none
僅僅通過interval來控制訊息的磁碟寫入時機,是不足的.此引數用於控制"fsync"的時間間隔,如果訊息量始終沒有達到閥值,但是離上一次磁碟同步的時間間隔達到閥值,也將觸發.
log.delete.delay.ms =60000
檔案在索引中清除後保留的時間一般不需要去修改
log.flush.offset.checkpoint.interval.ms =6000
控制上次固化硬碟的時間點,以便於資料恢復一般不需要去修改
auto.create.topics.enable =true
是否允許自動建立topic,若是false,就需要通過命令建立
num.partitions =1
每個topic的分割槽個數,若是在topic建立時候沒有指定的話,會被topic建立時的指定引數覆蓋
controller.socket.timeout.ms =30000
partition leader與replicas之間通訊時,socket的超時時間
controller.message.queue.size=10
partition leader與replicas資料同步時,訊息的佇列尺寸
replica.lag.time.max.ms =10000
replicas響應partition leader的最長等待時間,若是超過這個時間,就將replicas列入isr(in-sync replicas),並認為
它是死的,不會再加入管理中
replica.lag.max.messages =4000
如果follower落後與leader太多,將會認為此follower[或者說partition relicas]已經失效,通常,在follower與leader通訊時,因為網路延遲或者鏈結斷開,總會導致replicas中訊息同步滯後,如果訊息之後太多,leader將認為此follower網路延遲較大或
者訊息吞吐能力有限,將會把此replicas遷移到其他follower中.在broker數量較少,或者網路不足的環境中,建議提高此值
replica.socket.timeout.ms=30*1000
follower與leader之間的socket超時時間
replica.socket.receive.buffer.bytes=64*1024
leader複製時候的socket快取大小
num.replica.fetchers=1
leader進行複製的執行緒數,增大這個數值會增加follower的io
leader.imbalance.per.broker.percentage =10
leader的不平衡比例,若是超過這個數值,會對分割槽進行重新的
平衡zookeeper.connect = localhost:2181
zookeeper集群的位址,可以是多個,多個之間用逗號分割host
name1:port1,hostname2:port2,hostname3:port3
zookeeper.session.timeout.ms=6000
zookeeper的最大超時時間,就是心跳的間隔,若是沒有反映,
那麼認為已經死了,不易過大
zookeeper.connection.timeout.ms =6000
zookeeper的連線超時時間
zookeeper.sync.time.ms =2000
zookeeper集群中leader和follower之間的同步時間
kafka引數配置優化
非負整數,用於唯一標識broker broker.id 0 broker 服務監聽埠 port 9092 broker 發布給生產者消費者的hostname,會儲存在zookeeper。配置好這個host可以實現內網外網同時訪問。advertised.host.name host1 broker 發...
Kafka架構探險(三) Kafka引數詳解
kafka提供很多的引數 broker引數 topic引數 producer引數 consumer引數等,方便我們對kafka的效能做調整,本博文就來歸納總結下常見的引數 引數的說明是基於kafka 2.12 2.3.0版本 詳細可以參考官網 broker端的引數在kafka目錄下的config s...
Kafka詳解二 如何配置Kafka集群
kafka集群配置比較簡單,為了更好的讓大家理解,在這裡要分別介紹下面三種配置 1.首先啟動zookeeper服務 kafka本身提供了啟動zookeeper的指令碼 在kafka bin 目錄下 和zookeeper配置檔案 在kafka config 目錄下 首先進入kafka的主目錄 可通過 ...