从宏观介绍其源码三大架构-AOP架构,插件式架构,微内核架构
1、AOP架构
SkyWalking对各种组件链路,轨迹的跟踪trace,使用的整体的面向切面的架构AOP,比如在Spring中,AOP大量使用,在SkyWalking的探针里面跳跃性的代码很强,如果我们抓不住AOP的思想。我们是理解不透skywalking。探针的增强:对二进制代码的增强。
2、插件式架构:
为什么要实现插件式架构:为了对不同的大量中间件进行链路跟踪,有各种组件,消息队列,rpc,熔断,数据库,为了做大量组件的兼容,适配。对于任何一个组件都是一个插件,都定义了自己的接口规范,插件式架构,一个插装的基础的类和接口,这个插件式架构和AOP架构打通的,插件式架构最终要提供AOP架构里面的切面,为AOP架构提供支撑的。通过自定义的类加载机制来加载的。
3、微内核架构:
体现了skywalking具备了可拔插的能力,和插件式架构的思想很类似。体现在底层能力,比如:Jvm的性能度量都使用了微内核。如果我们不使用哪个组件的微内核,也可以停掉,使用java的spi机制来加载。