论文部分内容阅读
随着企业业务不断扩大,传统的单机架构已经不能够满足业务需求,应用程序通常采用复杂的大规模分布式架构实现。当应用程序出现故障的时候,运维人员难以定位出现问题的服务节点。分布式跟踪系统能够在复杂分布式环境下,跟踪用户请求,还原服务间调用拓扑关系,为运维人员快速定位故障服务节点提供了切实可行的方案。但是分布式跟踪系统采集到的数据具有关联性、无序性、实时性、突发性、并发性的特点,这些特点给后台数据分析引擎带来了极大的挑战。在数据高并发时,如果数据处理过慢容易引起数据阻塞甚至丢失,如果采用数据全量存储的方式不仅对数据存储带来了巨大压力,而且还会导致数据关联查询效率低下。因此,本文提出了一种分布式跟踪系统中数据分析引擎的设计与实现方案。为了解决数据接收和处理速度的不匹配而导致的数据阻塞或者丢失,该数据分析引擎设计了一种数据接收和处理分离的分析模型。该分析模型不仅保证了数据的接收能力,同时保证了数据处理节点的负载均衡。然后在数据处理节点引入Redis缓存的方式实时分析应用调用关系,直接将调用关系存入数据库中,解决数据关联查询缓慢的问题,同时通过数据预聚合的方式,减少了数据存储压力,并对Redis缓存进行了高性能优化。最后通过实验证明该数据分析引擎具有良好的数据处理能力。