天天看點

Kafka Broker常用配置詳解

    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項配置,這裡就不一一詳解了,感興趣的小夥伴請參考這裡。