Spring Cloud 微服务系列文章,点击上方合集↑
1. 简介
SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台,它是基于Java Agent探针的技术,对服务进行监控和追踪,具有零侵入性特点。
SkyWalking对运行中的服务进行实时监控,收集系统的调用链、方法调用路径等关键数据指标。
官网地址:https://skywalking.apache.org
2. 下载安装
可以直接下载二进制包或通过源码编译打包。
2.1 直接下载(推荐)
官网下载地址:https://skywalking.apache.org/downloads/
- 这里下载9.1.0的版本(高版本的需要Java11以上版本才行)。
官网下载很慢,网盘下载(推荐):「apache-skywalking-apm-9.1.0.tar.gz」来自UC网盘分享
https://drive.uc.cn/s/49ef857d0e944
2.2 编译安装
通过maven命令编译源码,生成可以运行的二进制包。
# 下载源码
git clone https://github.com/apache/skywalking.git# 进入目录
cd skywalking# 切换分支
git checkout v9.1.0git submodule init# 这里容易超时,注意检查,可以多试几次
git submodule update# maven打包
mvn clean package -DskipTests
编译后的包都在目录/dist下。
3. 运行服务
3.1 修改端口号
将默认8080
端口修改为8050
(8080
端口经常被占用)。
配置文件的路径:apache-skywalking-apm-bin/webapp/webapp.yml
cd webappvim webapp.yml
3.2 启动服务
在apache-skywalking-apm-bin/bin
路径下执行如下命令:
# mac/Linux
sh startup.sh# windows
startup.bat
3.3 访问
浏览器访问:http://localhost:8050/ ,出现如下界面说明启动成功。
4. 下载java探针
官网下载地址:https://skywalking.apache.org/downloads/
- 下载8.16.0版本。
官网下载很慢,网盘下载(推荐):「skywalking-agent-8.16.0.zip」来自UC网盘分享
https://drive.uc.cn/s/bd79d9556c314
5. 使用探针
5.1 运行jar包时使用探针
Java运行jar包的命令如下:
java -jar myapp.jar
我们加上如下参数,-javaagent
指定探针的位置。
java -javaagent:/路径/skywalking-agent.jar
-Dskywalking.agent.service_name=serviceName
-Dskywalking.collector.backend_service=localhost:11800
-jar myapp.jar
-javaagent:/路径/skywalking-agent.jar
指定探针的位置-Dskywalking.agent.service_name=serviceName
指定服务名称Dskywalking.collector.backend_service=localhost:11800
指定收集器地址
5.2 IntelliJ IDEA 上使用探针
IntelliJ IDEA启动应用的时候加上VM参数
输入如下:
-javaagent:/路径/skywalking-8.5.0/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800
-javaagent:/路径/skywalking-agent.jar
指定探针的位置-Dskywalking.agent.service_name=serviceName
指定服务名称Dskywalking.collector.backend_service=localhost:11800
指定收集器地址
在IntelliJ IDEA中对我们之前的gateway-service
、provider-service
、consumer-service
三个服务加上探针。
1)gateway-service
skywalking agent 默认不支持 gateway,需要将optional-plugins
目录下的gateway相关的插件(jar包)复制到plugins
目录下。(网盘下载的我已经放好了)。
-javaagent:/路径/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800
2)provider-service
-javaagent:/路径/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=provider-service
-Dskywalking.collector.backend_service=localhost:11800
3)consumer-service
-javaagent:/路径/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=consumer-service
-Dskywalking.collector.backend_service=localhost:11800
注意不同的服务对应的-Dskywalking.agent.service_name
不一样。
6. 服务监控和链路查看
浏览器访问接口: http://localhost:10000/consumer-service/consumer/test?name=zhangsan
多访问几次接口,然后在后台查看监控结果。后台地址:http://localhost:8050/
6.1 查看服务
gateway-service
、provider-service
、consumer-service
三个服务。
6.2 查看拓扑图
User
->gateway-service
->provider-service
->consumer-service
6.3 查看请求链路
可以看到具体的方法调用路径,包括调用花费的时间。
7. 总结
SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台。它利用Java Agent探针技术来监控和追踪服务,同时具备零侵入性的特点。通过实时监控和收集关键数据指标,SkyWalking帮助用户快速定位性能瓶颈和异常情况,为分布式系统提供全面的监控和管理服务。
Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo
目录下。
gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog
github:https://github.com/tigerleeli/xiaohuge-blog
关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!