28 主题管理

1.如何删除主题
执行kafka-topics脚本,删除操作是异步的,执行完脚本只是把主题标记为已删除

2.删除主题失败
可能原因:

  1. 副本所在broker宕机了
  2. 待删除主题的部分分区还在迁移

解决方法:

  • 手动删除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?

你可能感兴趣的:(kafka核心技术与实战,kafka)