kafka的broker配置
1.broker.id
每個broker都需要一個broker.id來唯一標識,它的預設值是0,也可以被設定成其他任意的整數。這個值在整個kafka叢集裡必須是唯一的,這個值是任意的整數,但是建議設定成與機器名具有相關性的整數,便於將ID號對映到機器名。例如機器名包含唯一性數字:host1.test.com/host2.test.com/host3.test.com,那麼在這2臺機器上部署的kafka的broker.id可以對應設定為broker.id=1/broker.id=2/broker.id=3
2.port
預設監聽9092,可以設定為其他任意可用的埠。不建議使用1024以下的埠,因為需要root許可權來啟動kafka。
3.zookeeper.connect
zookeeper.connect指定用於儲存broker元資料的Zookeeper地址。該配置引數是用冒號分隔的一組hostname:port/path列表,每一部分的含義如下:
hostname是Zookeeper伺服器的機器名或IP地址;
port是Zookeeper客戶端連線埠
/path是可選的Zookeeper路徑,作為Kafka機器叢集的chroot環境。如果不指定,預設使用根路徑。如果指定的chroot路徑不存在,broker會在啟動的時候建立它。一旦有一個Zookeeper伺服器宕機,broker還可以連線到Zookeeper叢集的其他節點上。
4.log.dirs
kafka把所有訊息都儲存在磁碟上,存放這些日誌片段的目錄是通過log.dirs指定的。
5.num.recovery.threads.per.data.dir
對於如下3種情況,Kafka會使用可配置的執行緒池來處理日誌片段:
伺服器正常啟動,用於開啟每個分割槽的日誌片段;
伺服器崩潰後重啟,用於檢查和截短每個分割槽的日誌片段;
伺服器正常關閉,用於關閉日誌片段。
預設配置num.recovery.threads.per.data.dir=1,設定大量執行緒進行並行操作,可以減少啟動、關閉、崩潰恢復的時間。
6. auto.create.topics.enable
預設情況下,Kafka會在如下如下幾種情形下自動建立主題:
當一個生產者開始往主題寫入訊息時;
當一個消費者開始從主題讀取訊息時;
當任意一個客戶端向主題傳送元資料請求時。