目录

一、Skywalking的下载

二、链路追踪

三、ruoyi-cloud认证源码分析 

1.login接口 

2.getInfo

3. getRouters


一、Skywalking的下载

http://skywalking.apache.org/downloads

 

下载好 SkyWalking APM与Java Agent,并将下载好的Agent放置在以下目录

打开上图webapp中的webapp.yml文件,并将端口改为8081

回到上一目录,打开bin目录下的startup.bat

出现以上两个窗口,并且没有错误发生时,就代表启动成功;随后打开skywalking的界面即localhost:8081;

二、链路追踪

因为要链路追踪的是ruoyi-cloud的认证功能,所以先下载RuoYi-cloud源码

RuoYi-Cloud: 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本

其次配置nacos持久化

打开上图的application-properties文件,并将db.url修改为自己数据库中的地址

再打开idea对每个服务模块进行配置JVM

-javaagent:D:\apache-skywalking-apm-bin\agent\skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-system -Dskywalking.collector.backend_service=localhost:11800

第一行为 skywalking-agent.jar所在位置,第二行的ruoyi-system为服务名称

对上图中的所有服务进行配置,若没有配置的地方,点右边蓝色的修改选项进行添加;

配置完成后。启动服务查看效果

三、ruoyi-cloud认证源码分析 

登录ruoyi-cloud并打开开发者模式

可以看到有三个接口login,getinfo,getRouters,通过查看网络可以看到它们分别在auth,system,system服务模块中。

1.login接口 

在skywalking中,点击服务

按上述顺序进行操作,就能直观的看到追踪的路径了

点击/login可查看到详细信息

然后我们就去auth服务模块去进行全局搜索与/login相关的代码

进入到当前接口页面

随后就一路点击寻找与login有关的内容

最后发现到这里就没有了,重新回到树状图区,发现这里跳转到system模块去了

 然后我们就去system模块搜索与user/info/{username}有关的代码

然后我们进到selectUserByUserName中去,最后发现与树状图一样。

在树状图中还有一个/logininfor接口,也用同样的方法进行追踪。

首先在system中搜索与logininfor相关的代码,并且一路追踪下去。

 可以看到最后与数据库交互写入登陆日志。

2.getInfo

与上面方法一样,在system中搜索相关代码。

3. getRouters

与上述方法一样,在system中进行搜素

至此,ruoyi的认证功能链路追踪完成。

更多推荐