$ cat -n config/server.properties
1)全局配置——Broker相關
broker.id=0 // broker ID, 集群模式下該ID必須唯一,且永恆不變。重點:每新啟動一個Kafka Server加入Kafka集群,該id必須且只能+1,否則會報錯 id不在指定范圍之內。
listeners=PLAINTEXT://localhost:9092 // kafka Server端啟動端口,如果是同一台機器啟動多個Kafka Server,則需要改此端口號。注意:如果這里的localhost不寫明IP(PLAINTEXT://:9092),則默認使用內網IP,例:192.168.2.61
zookeeper.connect=localhost:2181 // 連接zookeeper
zookeeper.connection.timeout.ms=6000 // 連接zookeeper超時毫秒數
log.dirs=/tmp/kafka-logs,/directory2,/directory3 // kafka日志數據存儲目錄,就是存儲你的數據。最少使用原則,當一個分區放在多台服務器或者多個路徑下時,哪個服務器擁有最少數據分區的優先。所以一個分區會放在同一個路徑下面。
num.recovery.threads.per.data.dir=8 // 當啟動或關閉kafka時,日志需要啟動或者恢復的時候的線程數量,默認1,這個值可以適當改大一點。注意:這里的啟動總線程數 = 此值 * log.dirs目錄樹,比如log.dirs目錄配置了4個,此值是8,則總線程數=32
num.network.threads=3 // 服務器用於從網絡接收請求並向網絡發送響應的線程數
num.io.threads=8 // 服務器用於處理請求的線程數,其中可能包括磁盤I/O
socket.send.buffer.bytes=102400 // 發送緩沖區,默認100KB
socket.receive.buffer.bytes=102400 // 接收數據緩沖區,默認100KB
socket.request.max.bytes=104857600 // 請求最大數量,默認100MB
2)主題相關——Topic
num.partitions=1 // 默認創建分區數量,注意:新建Topic時的分區數量必須大於此值!分區數評估方法:根據每秒的寫入和讀取的數據量,除以消費者個數,得出需要多少個分區。每個分區只有一個Leader首領。
log.retention.hours=168 // 日志數據默認保存時間:168小時,也可以設置成100分鍾:log.retention.minutes=100,或10000毫秒:log.retention.ms=10000
注意:在分區文件夾目錄下,有個00000000000000000000.log文件,如果size大到一定程度,會新建一個10這樣二進制命名的.log文件,例如10101010.log,00000000000000000000.log則停止更新,當舊文件的最后更新時間 + 日志保存時間 = 刪除時間,00000000000000000000.log日志就會被刪除。以此類推。
log.retention.bytes=1073741824 // 默認1GB,每個分區的最大文件大小。超出這個限制的部分數據會被刪除,一般不設置,-1為沒有大小限制。
log.segment.bytes=1073741824 // 默認1GB,日志段文件的最大大小。當達到這個大小時,將創建一個新的日志段。舊文件將等待過期時間然后被刪除。
log.retention.check.interval.ms=300000 // 默認5分鍾,檢查一次單個日志的過期狀態
Topic 操作參考: 《kafka2.5.0 主題Topic》
end.