进入Kafka的数据,都被作为日志存储到磁盘上了,并能够在磁盘上保留一段时间,最后被清理。其中,每一个分区的日志,还具备有日志轮转功能,这个设计类似于Log4j等日志系统。此外,kafka号称性能极好,它有disk io操作,查询性能居然也很好,它是怎么做到的呢?
1、LogManager设计之类图
在Kafka的代码里,进行日志管理的类是LogManager,它提供了对Log管理方面的操作,其中对Log的基本操作有:
createLog(TopicAndPartition partition) // 为分区创建Log deleteLog(TopicAndPartition partition) // 删除某个分区