Apache Kafka是分布式发布-订阅消息系统,它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式,分区化,可复制的提交日志服务。LinkedIn使用Kafka实现了公司不同应用程序之间的松耦和,那么作为一个可扩展、高可靠的消息系统,它在LinkedIn公司内部都有哪些应用场景、其生态系统是什么样的、未来又会向哪些方面发展呢?最近,LinkedIn的工程总监[Mammad Zadeh][1]在其公司博客上发表了一篇题为《[Kafka在LinkedIn公司的发展现状和未来][2] 》的文章,对此进行了介绍。 监控:主机通过Kafka发送与系统和应用程序健康相关的指标,然后这些信息会被[收集和处理][3]从而创建监控仪表盘并发送警告。除此之外,LinkedIn还利用Apache Samza实现了一个能够实时处理事件的[富调用图分析系统][4]。 传统的消息: 应用程度使用Kafka作为传统的消息系统实现标准的队列和消息的发布—订阅,例如搜索和内容提要(Content Feed)。 分析: 为了更好地理解用户行为,改善用户体验,LinkedIn会将用户查看了哪个页面、点击了哪些内容等信息发送到每个数据中心的Kafka集群上,并通过Hadoop进行分析、生成日常报告。 作为分布式应用程序或平台的构件(日志):大数据仓库解决方案[Pinot][5]等产品将Kafka作为核心构件(分布式日志),分布式数据库Espresso将其作为内部副本并改变传播层。