首页 > 其他分享 >springcloud集成SkyWalking链路追踪技术

springcloud集成SkyWalking链路追踪技术

时间:2024-10-08 18:02:18浏览次数:7  
标签:服务 springcloud 链路 jar agent gateway mysql SkyWalking skywalking

在微服务多个服务调用过程中,随着服务数量增多,互相调用的变多,就会出现一些问题:

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

相关文章

  • 全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)
    Docker是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持Docker的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker都能确保......
  • 全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)
    Docker是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持Docker的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker都能确......
  • 最新版本Skywalking【10.1.0】快速开始
    这里写目录标题前言前置条件启动Skywalking下载解压启动说明集成SkywalkingAgent下载Agent在IDEA中添加agent启动应用并访问SpringBoot接口前言基于当前最新版10.1.0搭建skywalking前置条件装有JDK11版本的环境了解SpringBoot相关知识启动Skywalking下载地址......
  • 全面图解Docker架构设计:掌握Docker全链路思维/实战/优化(小白到大师篇[2])
    Docker是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持Docker的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker......
  • SpringCloud入门(四)Ribbon负载均衡
    一、Ribbon负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。  SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。如下图:  基本流程如下:-拦截我们的RestTemplate请求http://userservi......
  • SpringCloud入门(三)Eureka 注册中心
    一、Eureka注册中心简介假如我们的服务提供者user-service部署了多个实例,如图: 问题:-order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口?-有多个user-service实例地址,order-service调用时该如何选择?-order-service如何得知某个user-service实例是......
  • Link-local地址是IPv6中一种特殊类型的地址,用于在同一链路(网络段)内进行通信。这些地址
    IPv6的link-local地址定义:Link-local地址是IPv6中一种特殊类型的地址,用于在同一链路(网络段)内进行通信。这些地址的前缀是FE80::/64,并且每个IPv6设备在其网络接口上都会自动生成一个link-local地址。来源:Link-local地址的设计目的是为了支持IPv6设备之间的本地通信,而不需要依......
  • AI变革营销全链路:从市场洞察到销售转化,AI将推动营销效率革命
    大家好!今天,我要和大家聊聊AI如何助力营销行业,变革营销全链路的。从市场洞察到销售转化,AI正一步步推动着营销效率的革命。什么是营销全链路什么是营销全链路?简单来说,就是从了解消费者需求开始,到制作出吸引人的内容,再到把信息传播出去,最后实现销售转化的整个过程。这个过程环......
  • SpringCloud分布式配置中心--出错记录
    报错:问题集中在"${my.content}"占位符无法被解析,注入不识别。结果发现git仓库中的wollo.yml文件的内容格式不对!!!2024-09-3011:31:00.440INFO5660---[main]c.c.c.ConfigServicePropertySourceLocator:Fetchingconfigfromserverat:http://localhost:8888......
  • 【含文档+PPT+源码】基于SpringCloud微服务的船舶交易平台的设计与实现
    项目背景与意义随着全球经济的快速发展,航运业成为国际贸易中不可或缺的一环。船舶交易平台作为航运业的重要组成部分,为船舶买卖、租赁等交易提供了便利和高效的途径。在传统的船舶交易中,买卖双方往往需要通过中介机构来进行交易,这不仅增加了交易的时间和成本,还存在信息不透明......