kafka0.72擴容和磁盤優化

kafka從0.8.2開始一下兩個特性

 1.支持使用命令管理topic並partition(Add delete topic to topic commands and update DeleteTopicCommand

 2.支持配置多塊磁盤(Support multiple data directories

3.擴容


0.7.2就不支持嗎?

程序本身不支持多磁盤,支持擴容但是沒有命令,需要我們換個思路自己搞起來。


這裏我就說說,kafka怎麼管理他們topic,首先當kafka啓動的時候會在zookeeper上創建一個臨時目錄,目錄結構如下:


  +/brokers                      //持久目錄
          +/ids                   //持久目錄
		-/0               //臨時文件記錄broker的ip信息(10.150.27.48-1460126846085:10.150.27.48:9092)
		-/1               //同上另一個broker
  	  +/topics                //持久目錄
		+/topicname1      //持久目錄 這個就是你的 topic名稱了
			-/0       //臨時文件 內容爲(整數n),這個數字表示你在這個broker(0爲broker編號)下有幾個partition
			-/1       //同上
		+/topicname2
			-/0
			-/1
		+/topicname3
			-/0
			-/1
以上這個目錄是 kafka在zookeeper中動態維護的,如果你覺得不爽都可以刪除的,然後重啓kafka就好了,這裏就有個疑問了,kafka怎麼能恢復zookeeper的數據呢


1.ids的恢復就不用說了,配置文件配置了

2.topic呢,看看配置文件配置的log.dir的目錄內容如下:

topicname-0       //partition 0的數據所在目錄,下面同理
topicname-1
topicname-2

這就是了,broker(也就是kafka的一個節點)是知道自己有幾個partition的。

然後本人經過測試發現,在kafka上你只要建立的這樣的目錄,broker就在啓動的時候把這個信息維護到zookeeper中。


我們現在知道原理了,擴容吧,

1.部署一個kafka到其他機器上

2.創建topicname-0等目錄

3.啓動,完成了就這麼簡單


怎麼使用多塊磁盤呢,在上面第二步使用“連接”就好了,由於kafka是順序讀寫的,這樣io性能提升非常大。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章