10.11772/j.issn.1001-9081.2021101735
事件驱动的微服务调用链路数据动态采集方法
微服务调用链路数据是微服务应用系统日常运行中产生的一类重要数据,它以链路形式记录了微服务应用中一次用户请求对应的一系列服务调用信息.由于系统的分布性,微服务调用链路数据产生在不同的微服务部署节点,当前对这些分布数据的采集一般采用全量采集和采样采集两种方法.全量采集会产生较大数据传输和数据存储等成本,而采样采集则可能会漏掉关键的链路数据.因此,提出一种基于事件驱动和流水线采样的微服务调用链路数据动态采集方法,并基于开源软件Zipkin设计实现了一个微服务调用链路数据动态采集系统.该系统首先对不同节点符合预定义事件特征的链路数据进行流水线采样,即数据采集服务端只在某节点产生事件定义的数据时对所有节点采集同一链路数据;同时,针对不同节点的数据产生速率不一致问题,采用基于时间窗口的多线程流式数据处理和数据同步技术实现不同节点的数据采集和传递;最后,针对各节点链路数据到达服务端先后顺序不一的问题,通过时序对齐方式进行全链路数据的同步和汇总.在公开的微服务调用链路数据集上的实验结果表明,相较于全量采集和采样采集方法,所提方法对于包含异常、慢响应等特定事件的链路数据具有采集准确性高、效率好的效果.
微服务、调用链路数据、动态采样、事件匹配、缓存机制、服务链路追踪
42
TP311.5(计算技术、计算机技术)
国家重点研发计划;北京市自然科学基金资助项目
2022-12-02(万方平台首次上网日期,不代表论文的发表时间)
共7页
3493-3499