7.2 鹰眼平台的架构
基于以上的设计思路和理念,淘宝构建的鹰眼架构如图7-5所示,因为阿里巴巴内部安全规定,该架构图是2013年时对外介绍的架构,在近几年鹰眼平台发展过程中,对某些组件也进行了升级和替换,但总体的架构原理没有大的变化。
首先在每个应用集群的运行环境中,每当应用中进行了远程服务调用、缓存、数据库访问等操作时,都会生成相关的访问日志并保存到应用所在的服务器上。
因为这些本地日志信息仅仅是一次业务请求处理中的部分日志信息,必须要将这些日志信息汇聚到一个地方才能进行全局的统计和查看,所以在每个运行应用所在的服务器上均有一个代理程序,专门负责实时地将生成的日志文件(增量)发送到鹰眼的处理集群上。
图7-5 鹰眼平台架构示意图
鹰眼平台是阿里巴巴中间件团队自主研发的JStorm流式计算引擎,对应用集群接收到的日志进行内容的解析拆分,按照不同业务场景的需求将拆分后的数据保存到不同的存储系统中。对于需要对日志信息进行实时业务统计的需求,会将日志信息保存到HBase中,对接收到的日志信息进行实时的汇总计算,最后给鹰眼服务器提供实时业务统计数据,比如某一服务实时的QPS值、交易金额的实时变化等场景。如果对于日志信息要进行批量的统计和分析,比如7.5节将会提到的链路分析功能,则会利用Hadoop分布式文件系统(HDFS)提供这类业务场景下对日志数据的计算和分析。
