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性能提升非常大。






发布了29 篇原创文章 · 获赞 6 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览