在微服务多个服务调用过程中,随着服务数量增多,互相调用的变多,就会出现一些问题:
1、调用链路,如何快速定位问题
2、如果缕清微服务之间的依赖关系
3、各个微服务接口性能分析
4、整个业务流程的调用处理顺序
skywalking可以很好的处理这些问题,在springcloud微服务中如何整合skywalking呢,如下
下载链接:https://archive.apache.org/dist/skywalking/
此处是window,所以下载tar.gz即可,下载版本为8.5.0
文件目录如下:
打开bin目录下,找到 startup.bat 双击启动。
然后访问localhost:8080,默认端口8080可以通过webapp里面的webapp.yml进行修改,启动完成就可以访问到如下可视化UI页面
在idea中的服务需要对java的VM参数进行设置,点击edit configurations,找到VM options
设置参数如下
-javaagent:D:\skywalking\apache-skywalking-apm-8.5.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar -DSW_AGENT_NAME=service_name-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
第一行是skywalking解压包中agent文件夹下的skywalking-agent.jar所在位置
第二行是服务名称
第三行是这个skywalking的远程服务的地址
这gateway的服务没有server,skywalking默认是没有集成gateway的,需要从 \agent\optional-plugins文件夹下找到gateway的jar包,复制到同级的plugins包下,就能使用gateway
之后需要重启skywalking和微服务,之后就能看到gateway服务的相关请求日志信息
通过拓扑图就比较直观看到请求的路径,点击右上角的自动刷新,这样就能实时看到请求更新
点击具体的节点就就能看到对应节点的相关数据,处理性能等。
接下去说下如果想skywalking进行数据库持久化,此处用的是mysql,默认是h2,就是使用内存,虽然skywalking是要实时最新数据,但也是为了方便追踪问题,可以进行持久化,通常的两个数据库为ES和mysql。
1、修改配置文件中内容,数据库用mysql,配置文件地址为config\application.yml下
搜索storage, 将此处的h2改为mysql,然后找到mysql,将mysql的连接信息修改为你的数据库地址,修改账号密码,需要先去新建一个swtest的数据库
2、需要将mysql的jar放到对应的oap-libs文件夹下中
这个jar可在自己本地项目中的jar包去找,这个mysql包很常见,很容易找到
3、需要重启skywalking服务和微服务模块(两个都要重启)
重启完成后,我们也能从数据库swtest中看到自动给我们新建了好多表
再次访问skywalking可视化UI页面,随便请求个接口,之后我们可以看到请求数据,之后我们再将skywalking服务关闭重启,之后再刷新可视化页面,我们可以看到,之前的请求数据依旧还在,不会被删除,说明依旧被持久化到mysql中
以上内容纯属学习使用!
标签:服务,springcloud,链路,jar,agent,gateway,mysql,SkyWalking,skywalking From: https://www.cnblogs.com/qwg-/p/18451317