broker的配置檔案位于kafka的config/server.properties檔案。
Broker基本配置
broker.id:代理Id,必須是唯一的整數。可以是0,1,2,3這樣的自定義編号,也可以是IP位址的最後一位,如23,24,25,建議使用後面的編碼方式。
auto.leader.rebalance.enable:是否允許leader節點自動配置設定,啟用的話,會有背景程序定時檢查并觸發轉移leader操作。預設啟用。
background.threads:背景處理任務的程序數,預設為10.
Topic配置
auto.create.topics.enable:是否允許自動建立主題,預設為true,建議設定為false。
delete.topic.enable:是否允許删除主題,預設不允許,建議保持現狀。
Zookeeper配置
zookeeper.connect:zookeeper伺服器的位址和端口号,如果有多個的話,用逗号分開。如10.0.10.1:2181,10.0.10.2:2182。
zookeeper.connection.timeout.ms:Zookeeper連接配接逾時時間,機關為ms,預設值6000。
Socket伺服器設定
listeners:監聽伺服器,端口号必須與port一緻,PLAINTEXT://:9092
port:監聽端口
host.name:broker綁定的主機位址,可以是主機名,也可以是ip位址。預設值localhost。如果不設定的話,通過用戶端連接配接的話,會找不到伺服器。
advertised.host.name:代理廣播給生産者和消費者的端口号,如果沒有設定的話,預設值為host.name的值。
num.network.threads:并發網絡線程數,預設為3
num.io.threads:并發IO線程數,預設為8
socket.send.buffer.bytes:socket發送伺服器的緩存區,預設102400位元組
socket.receive.buffer.bytes:socket接收伺服器的緩存區,預設102400位元組
socket.request.max.bytes:socket每次請求的最大位元組數,預設102857600位元組
日志配置
log.dirs:日志的存放路徑
num.partitions:每個主題的預設分區數,預設值1。分區數越多,可并行的消費者越多,但會導緻代理伺服器處理更多的檔案。
num.recovery.threads.per.data.dir:每個資料目錄的線程數量,在啟動時恢複日志和關閉時沖洗使用。建議和RAID隊列中的資料目錄一同增加。
日志寫入磁盤政策
log.flush.interval.messages:兩條消息的寫入磁盤的間隔時間,預設值10000,機關毫秒。
log.flush.interval.ms:将消息強制寫入磁盤前,消息占用日志檔案的最大時間。
日志儲存政策
log.retention.hours:日志最少儲存時間,即超過某時間後才可能被删除,預設值168,機關小時。
log.retention.bytes:日志檔案的最大存儲容量,預設1073741824,機關位元組。
log.segment.bytes:單個日志檔案的最大存儲容量,預設1073741824,機關位元組。
log.retention.check.interval.ms:日志可以删除的最早時間,預設為300000,機關毫秒。即日志隻有在建立5分鐘後才可以删除。
Broker總共有130項配置,這裡就不一一詳解了,感興趣的小夥伴請參考這裡。