设计特色

kafka 源码调研系列1 特色

假装没事ソ 提交于 2019-11-27 15:37:45
kafka 相关调研很多,其中以FrankHui大神( http://my.oschina.net/ielts0909 )的kafka系列文章非常精彩,悲催的是,前期调研时候没有看到,老老实实的看完了Apache kafka官方文档( http://kafka.apache.org/introduction.html ),但还是云里雾里,和同事讨论的时候发现很多细节都没有琢磨清楚,再看kafka孵化MQ产品MetaQ( http://www.iteye.com/magazines/107 )的相关资料和FrankHui的系列博文,对照官方设计文档,有了更清楚的认识。 kafka比较新颖的特色如以下: 1 结合实时数据和离线大数据两种数据处理业务,因此方便有相关需求的同志不需要搭建hadoop专门处理离线数据,而后又搭建storm等来处理实时数据; 2 采取文件系统作为数据存储介质,而不是像ZeroMq之类的基于内存的mq,设计体现的好处是既能保证高吞吐率的同时,又能保证极端情况下数据的恢复,更好的是,极大节约了内存成本。当然为了媲美基于内存MQ的读写性能,kafka做了一些巧妙的设计,最突出的就是利用顺序读写代替基于BTree的读写方式和Zero-copy(具体技术细节见 https://www.ibm.com/developerworks/linux/library/j