Kafka 0.8.0刚刚发布,新版本主要改进包括:
- 支持集群内复制,将每个日志段都在多个broker节点复制,饶军对此专门写过文章
- 支持多个数据目录
- 请求处理改为异步
- 增加许多新的内部指标,从JMX切换到Coda Hale开发的Metrics库
- 基于时间的日志段删除
更多技术细节请参考版本说明及其中的链接。
Apache Kafka是源自LinkedIn的一种分布式日志服务,主要用Scala语言开发(少量Java),其实质是高吞吐量而功能简单的消息队列。由于架构设计独特,Kafka与传统消息队列相比,内置分区、复制和容错功能,适合大规模系统。曾有数据表明,Kafka能够每秒发布超过40万条消息。
Kafka的概念架构图如下:
详细的架构设计说明可以参考资料汇集,开源中国上fbm同学做了资料汇集(很长,质量不错)。
目前Kafka已经被众多互联网公司如Twitter、Pinterest、Netflix、Tumblr、Foursquare、Square、StumbleUpon、Coursera等广泛应用。
主要使用场景包括:消息处理、活动流跟踪、运营数据监测、日志聚合、流处理(与Storm配合)等。(参见文档)
类似的开源项目还有Facebook的Scribe,Yahoo的Chukwa,Cloudera的Flume,董西成做过比较。
Kafka的开发团队目前还是主要以LinkedIn的工程师为主,包括漂亮的女工程师Neha Narkhede、清华1994届的饶军等,但也出现了LucidWorks的David Arthur和加拿大的Prashanth Menon等外部核心开发者。
不知道国内有哪些生产环境的应用?
技术资料
- 官方网站的资料汇集
- LinkedIn研发团队网站
- Quora上的讨论,其中Neha美女问答了如何着手学Kafka的问题
- StackOverflow
- CSDN博客上的介绍和学习笔记
- 董西成博客上的学习笔记
- 淘宝FrankHui的Kafka资料整理
via Hacker News,IDG的相关报道