欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

我被这幅画框震撼了,它真的太棒了!

最编程 2024-05-01 14:06:46
...

今天给大家推荐一个非常牛逼的框架Skywalking,它是一款开源的分布式链路追踪框架,目前已经是Apache*项目。

从架构师的角度来看,Skywalking的架构设计考虑到了轻量级、可扩展性和可维护性。其整体架构可以分为三个主要部分:数据采集、数据处理和数据展示。

所谓数据采集,主要是指Skywalking通过在应用程序中嵌入探针,将调用链路数据采集到OAPObservability Analysis Platform)中进行处理。这种数据采集方式对应用程序的性能影响较小,同时可以支持多种语言和平台。

所谓数据处理,Skywalking将采集到的调用链路数据进行处理和分析,生成度量指标和调用链路视图。这种处理方式使得运维人员可以快速了解系统的运行状态和性能瓶颈。

所谓数据展示,Skywalking提供了多种数据展示方式,包括仪表盘、大屏可视化等,使得运维人员可以直观地了解系统的运行情况。此外,Skywalking还支持自定义插件和集成其他监控工具,以满足不同场景的需求。

Skywalking的架构中,还采用了模块化的设计方式,将不同的功能模块化,使得系统更易于扩展和维护。同时,Skywalking还支持分布式部署,可以满足大规模系统的监控需求。

Skywalking目前在Github上的Star数量达到22.7K,这个关注规模是非常可观的,也是社区的开源爱好者都非常的看好该框架。

作为开发者,看到好的项目之后,除了自动的会点击Star之外,那么剩下的就是要Fork该项目,并利用该项目去完成技术的自研和参与该项目的开源贡献。目前SkywlkingFork梳理也达到了6.4k,这个数量也是非常可观的。

我也是一个开源框架的*爱好者,从最开始的自研全链路监控框架到Skywalking,且最开始关注Skywalking的时候,它还不是Apache的*项目。

我记得很清楚,那个时候我给团队的小伙伴布道全链路监控的时候,很多大厂过来的专家都不知道这个框架,更别说熟悉和应用了。

短短这几年Skywlking可以说是发展迅速哈,无论是国内还是国外,它的使用者和开源贡献者,都是呈现指数倍数在增长。

目前Skywlking最新的版本为9.7.0(我当初接触的时候,Skywalking还是6.X版本),这个框架是我见过的更新版本最快的Apache*开源项目。

Skywlking的代码写的非常的棒,尤其是那些致力于可扩展架构的架构师,我这里强烈的推荐你们去仔细的阅读一下Skywlking的源码,这对你对架构的理解是有帮助的。

当然我是已经看完了源码的,并且也是在持续的关注它的新功能的具体实现。

技术人可以借助该框架去了解后端领域中几乎所有的中间件,确实是太牛了。

Skywlking作为分布式链路追踪,主要是利用Java Agent去侵入到后端服务中。

至于侵入的模式,那就是技术开发者使用哪些技术,Skywalking就得支持对应的插件。

比如DubboSpringRocketMQESRedis、分布式Job等,只要是技术人在分布式架构中所使用的技术,Skywlking基本都是支持的。

那么作为使用Skywaking的技术人,自然就要了解对应技术的插件,这个也可以大大的提高技术人的技术广度。

当咱们有了广度之后,就可以花时间去拓展自己技术的深度。

关于Skywalking最核心的oap server的代码如下,在高版本的Skywalking中,已经将oap server和插件(探针)的代码解耦了,毕竟插件是用于侵入到应用服务中的代码,而oap serverSkywalking服务平台的代码

为什么我说Skywalking牛逼了,下面我可以先简单的给大家聊一下它的代码设计。

1点,Skywalking自己用一个main()方法去启动了整个服务平台,且并没有依赖任何第三方基础框架,比如Spring或者Spring Boot。

代码语言:javascript
复制
public class OAPServerStartUp {
    public static void main(String[] args) {
        OAPServerBootstrap.start();
    }
}

2点,用shell脚本去执行以上main()方法,从而做到启动整个Skywalking的服务平台

其中oapService.sh是用来启动oap server,而webappService.sh用来启动oap server对应的可视化的管理后台。

3点,oap server中几乎所有的功能都已经模块化和插件化,也就是启动oap server就相当于按照配置信息去逐一的启动Skywalking所支持的各个子模块。

关于Skywalking支持的模块可以在部署文件夹config/application.yml中去查阅,比如上图中的集群管理模块。

推荐阅读