【技术实现步骤摘要】
本专利技术涉及一种分布式系统的跟踪处理方法,尤其是涉及一种分布式服务跟踪实现方法。
技术介绍
如今互联网服务通常都是用复杂的、大规模分布式集群来实现的,互联网应用构建在不同的软件模块集上。这些软件模块,有可能是由不同的团队开发、也有可能使用不同的编程语言来实现、还有可能分别部署在不同的服务器上,横跨多个不同的数据中心。因此,就需要有一些可以帮助理解系统行为、用于分析系统性能问题的工具。比如在搜索系统中,用户的一个请求在系统中会经过多个子系统的处理,而且这些处理是发生在不同机器甚至是不同集群上的,当请求处理发生异常时,需要快速发现问题,并准确定位到是哪个环节出了问题,这是非常重要的。为了解决这样的问题,谷歌开发了分布式跟踪系统Dapper并发布了一篇论文《Dapper,aLarge-ScaleDistributedSystemsTracingInfrastructure》(《Dapper,大型分布式系统跟踪系统的基础设施》)来阐述其核心理论。目前可查的分布式跟踪系统的实现,其基本理论都源于谷歌的这篇论文。但是Dapper只是为解决请求调用这一问题提出了理论模型,并没有提供具体的实现。本专利技术的分布式跟踪系统是在博采众家之长的基础上提供了完整的分布式系统的跟踪解决方案,更符合现有SOA(面向服务的体系结构)系统架构需求。可以做到接入透明,对业务的性能影响微乎其微,实时跟踪,同时本专利技术的分布式跟踪系统提供的实时预警功能保证在系统出现异常甚至宕机的情况下可以及时通知预警,保证系统的稳定性和高可用性。
技术实现思路
本专利技术提供了一种分布式服务跟踪实现方法,解 ...
【技术保护点】
一种分布式服务跟踪实现方法,包括日志采样模块、日志收集模块、日志存储模块、统计报表模块、前端模块,所述日志采样模块利用拦截器拦截技术或面向切面编程技术拦截分布式调用链中的进程行为,所述日志收集模块定期实时读取文件,并将有用的日志信息发送到日志存储模块,所述统计报表模块定期进行日志统计,前端模块提供用户交互界面;整体架构称为Cicada;对于请求发起进程的设为客户端,服务提供进程的设为服务端,同一次请求的所有相关调用的情况称作分布式调用链,记为Trace,每个分布式调用链拥有一个全局唯一的ID来标识,其中所述服务端调用其他进程时成为该调用中的的客户端,该跨进程的一次调用记为Span;在客户端的前端请求到达服务器时,应用容器在执行实际业务处理之前,会先执行Cicada的埋点逻辑,埋点逻辑为这个前端请求分配一个全局唯一的调用链ID,称为TraceId,埋点逻辑把TraceId放在一个调用上下文对象Span里面,而调用上下文对象会存储在ThreadLocal里面,ThreadLocal能够基于线程进行数据的存储和读取,能在同一次请求的多个本地处理方法间传递信息。
【技术特征摘要】
1.一种分布式服务跟踪实现方法,包括日志采样模块、日志收集模块、日志存储模块、统计报表模块、前端模块,所述日志采样模块利用拦截器拦截技术或面向切面编程技术拦截分布式调用链中的进程行为,所述日志收集模块定期实时读取文件,并将有用的日志信息发送到日志存储模块,所述统计报表模块定期进行日志统计,前端模块提供用户交互界面;整体架构称为Cicada;对于请求发起进程的设为客户端,服务提供进程的设为服务端,同一次请求的所有相关调用的情况称作分布式调用链,记为Trace,每个分布式调用链拥有一个全局唯一的ID来标识,其中所述服务端调用其他进程时成为该调用中的的客户端,该跨进程的一次调用记为Span;在客户端的前端请求到达服务器时,应用容器在执行实际业务处理之前,会先执行Cicada的埋点逻辑,埋点逻辑为这个前端请求分配一个全局唯一的调用链ID,称为TraceId,埋点逻辑把TraceId放在一个调用上下文对象Span里面,而调用上下文对象会存储在ThreadLocal里面,ThreadLocal能够基于线程进行数据的存储和读取,能在同一次请求的多个本地处理方法间传递信息。2.根据权利要求1所述的分布式服务跟踪实现方法,其特征在于:所述Span包括客户端Span和服务端Span,一个远程调用对应两个span,多条Span形成树形结构,组合成一次Trace追踪记录,在Span中的标注点用于记录整个Span时间段内发生的事件,用特殊标注点记录用户自定义事件。3.根据权利要求2所述的分布式服务跟踪实现方法,其特征在于:所述标注点的属性包括timestamp、type、ip、port,分别表示记录行为发生时间、记录行为类型、IP地址、端口;所述特殊标注点的属性包括timestamp、type、ip、port、key、value,分别表示记录行为发生时间、记录行为类型、IP地址、端口、用户定义属性名、用户定义属性值;所述Span的属性包括traceId、Id、parentId、appName、serviceName、methodName、subSpanNum、annotations、binaryAnnotations,分别表示分布式调用唯一id、Span唯一id、Span父id、应用名、类名、方法名、子span数量、调用信息、补充信息或异常信息。4.根据权利要求1所述的分布式服务跟踪...
【专利技术属性】
技术研发人员:张若飞,朱鹏程,赵泽成,
申请(专利权)人:宜人恒业科技发展北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。