1.如何删除主题
执行kafka-topics脚本,删除操作是异步的,执行完脚本只是把主题标记为已删除
2.删除主题失败
可能原因:
- 副本所在broker宕机了
- 待删除主题的部分分区还在迁移
解决方法:
- 手动删除zk节点/admin/delete_topics下以待删除主题为名的znode
- 手动删除主题在磁盘上的分区目录
- 在zk执行rmr /controller,触发重选举,刷新Controller缓存(可能会导致大量分区重选举)
3.__consumer_offset主题占用太多空间
可能是kafka-log-cleaner-thread挂了,使用jstack查看,重启broker可以解决
4.为什么kafka不允许减少分区数
因为多个broker都冗余有broker分区的数据,减少分区需要将该分区的数据迁移到其他分区。如果是按key hash选的分区,就不知道要迁移到哪里了
5.增加分区旧分区的数据会自动迁移吗
不会
6.新增分区后,如果之前是按key保证消息的有序性,新增后会导致指定key被分配到其他分区
7.怎么优雅停止集群中的broker,一个broker可能是controller,也可能是几个分区的leader,可以考虑减少这台broker的职责
什么是controller?