我用SkyWalking解决分布式链路追踪,这也太香了

大家好,我是不才陈某~

本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下:

我用SkyWalking解决分布式链路追踪,这也太香了_第1张图片

什么是Skywalking?

上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin,这种方案目前也是有很多企业在用,但是作为程序员要的追逐一些新奇的技术,Skywalking作为后起之秀也是值得大家去学习的。

skywalking是一个优秀的国产开源框架2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。短短两年就被Apache收入麾下,实力可见一斑。

skywalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。

Skywalking和Spring Cloud Sleuth+ZipKin如何选型?

Skywalking相比于zipkin还是有很大的优势的,如下:

  • skywalking采用字节码增强的技术实现代码无侵入,zipKin代码侵入性比较高
  • skywalking功能比较丰富,报表统计,UI界面更加人性化

个人建议:如果是新的架构,建议优先选择skywalking。

Skywalking架构是怎样的?

skywalking和zipkin一样,也分为服务端和客户端,服务端负责收集日志数据并且展示,架构如下:

我用SkyWalking解决分布式链路追踪,这也太香了_第2张图片

上述架构图中主要分为四个部分,如下:

  • 上面的Agent:负责收集日志数据,并且传递给中间的OAP服务器
  • 中间的OAP:负责接收 Agent 发送的 Tracing 和Metric的数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
  • 左面的UI:负责提供web控制台,查看链路,查看各种指标,性能等等。
  • 右面Storage:负责数据的存储,支持多种存储类型。

看了架构图之后,思路很清晰了,Agent负责收集日志传输数据,通过GRPC的方式传递给OAP进行分析并且存储到数据库中,最终通过UI界面将分析的统计报表、服务依赖、拓扑关系图展示出来。

服务端如何搭建?

skywalking同样是通过jar包方式启动,需要下载jar包,地址:skywalking.apache.org/downloads/

1、下载安装包

选择V8.7.0这个版本,如下图:

我用SkyWalking解决分布式链路追踪,这也太香了_第3张图片

以上只是陈某的选择,可以按照自己的需要选择其他版本

解压之后完整目录如下图:

我用SkyWalking解决分布式链路追踪,这也太香了_第4张图片

重要的目录结构分析如下:

  • agent:客户端需要指定的目录,其中有一个jar,就是负责和客户端整合收集日志
  • bin:服务端启动的脚本
  • config:一些配置文件的目录
  • logs:oap服务的日志目录
  • oap-libs:oap所需的依赖目录
  • webapp:UI服务的目录

2、配置修改

启动之前需要对配置文件做一些修改,修改如下:

1、/config/application.yml

这个是oap服务的配置文件,需要修改注册中心为nacos,如下图:

我用SkyWalking解决分布式链路追踪,这也太香了_第5张图片

配置①:修改默认注册中心选择nacos,这样就不用在启动参数中指定了。

配置②:修改nacos的相关配置,由于陈某是本地的,则不用改动,根据自己情况修改。

2、webapp/webapp.yml

这个是UI服务的配置文件,其中有一个server.port配置ÿ

你可能感兴趣的:(分布式,java,spring,boot,Java程序员,经验分享)