下篇主要针对上篇的疑问做一些回答
中途修改分区数量是否可行,会有什么影响
可以的,kafka有提供对应的命令增加分区。
eg:./bin/kafka-topics.sh --zookeeper vlnx111122:2181 --alter --topictest--partitions 6
这样新的消息会根据规则有部分路由到新的分区,但旧的消息是不会动的。
也可以修改broker数量,不过修改了只对新的topic生效,旧的topic的分区不会变,可以手动迁移,Kafka提供了kafka-reassign-partitions.sh进行数据迁移。
删除消息怎么实现的
因为分区内的数据是分段储存的,所以删除的时候是直接删除分段文件,避免了对文件的随机写。
broker和分区是什么关系
一个broker可以拥有一个topic的多个分区。
消息读是从磁盘读的吗
当读操作发生时,先从PageCache中查找,如果发生缺页才进行磁盘调度。
放在pagecache还有一个好处,如果kafka重启,操作系统管理的pagecache还是可以继续使用。
网友评论