校园招聘网站策划书,怀化网络推广哪家服务好,服务器网站打开慢,中国建设银行嵊州市支行网站视频教程#xff1a; https://www.bilibili.com/video/BV12LBFYjEvR
效果演示
当我们发送一个请求给 Gateway 的时候#xff0c;由 Micrometer trace 进行链路追踪和数据收集#xff0c;由 Zipkin 进行数据展示。可以清楚的看到微服务的调用过程#xff0c;以及每个微服务…视频教程 https://www.bilibili.com/video/BV12LBFYjEvR
效果演示
当我们发送一个请求给 Gateway 的时候由 Micrometer trace 进行链路追踪和数据收集由 Zipkin 进行数据展示。可以清楚的看到微服务的调用过程以及每个微服务处理工作所花的时间。
在生产环境当中如果一个接口响应数据较慢可以使用这个工具快速查看具体是哪个环节较慢进行针对性的调优。
项目准备
为本篇文章的编写我准备了一个 Spring Cloud 小项目你可以通过这个链接下载整合 Micrometer 和 Zipkin 之前的项目代码https://github.com/xiaohh-me/xiaohh-cloud-micrometer/archive/refs/tags/v1.0.0.tar.gz 或 https://github.com/xiaohh-me/xiaohh-cloud-micrometer/archive/refs/tags/v1.0.0.zip。
该项目采用的技术栈
技术栈版本SpringBoot3.2.12SpringCloud2023.0.4SpringCloudAlibaba2023.0.1.0MyBatisStarter3.0.4
当然接下来需要引入的 micrometer-tracing 使用的是 1.4.1 的版本。运行这个项目你需要安装jdk 17或更高的版本。
这个项目我还准备了一个多个服务之间调用的一个接口调用新建订单时会有这么一个流程
Gateway 网关模块接收到新建订单的请求并转发到 Order 订单模块。Order 订单模块新建订单并将 OrderID 和价格信息传入给 Pay 支付模块进行支付。Pay 支付模块调用 Account 账户模块进行扣减余额。
最终形成了上面效果演示显示形成的调用链路关系调用方式如下
http://localhost:8080/order/orderInfo
{orderAmount: 99.99 // 订单金额
}Zipkin 下载和运行
Zipkin 是一个单独的分布式追踪系统需要单独下载和运行。zipkin 官网https://zipkin.io。可以来到官网的 Quickstart 界面点击 latest release 进行下载。当然下载下来是一个jar包你需要安装 java 17 才能运行它
下载下来之后将会是一个jar包
然后你可以使用这行命令运行 zipkin 服务器
java -jar zipkin-server-{version}-exec.jar如图所示则代表启动成功
项目修改
启动nacos注册/配置中心
笔者提供的代码使用的是nacos的注册中心和配置中心nacos的下载可以点击这里注册中心需要链接 MySQL5.7 数据库。导出的数据库脚本在项目当中有包含
其余三个分别为三个微服务模块的数据库脚本文件。在MySQL当中执行这四个文件即可将项目所需要用到的数据库创建完成。接下来需要修改nacos的配置文件位置在 conf/application.properties 。需要设置数据库的连接在原文件找到对应的修改位置即可
spring.datasource.platformmysql
spring.sql.init.platformmysql
db.num1
# 注意数据库的IP地址
db.url.0jdbc:mysql://127.0.0.1:3306/xiaohh_config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.user.0root
db.password.0{修改为你自己数据库的密码}然后执行下面这行命令即可启动nacos
# Linux/Unix/MacOS
./bin/startup.sh -m standalone# Windows
bin/startup.sh -m standalone在执行后等一段时间可以访问服务器的 8848 端口的 /nacos 目录可以看到我已经添加了一些配置文件
Gateway 当中的配置包含了三个微服务的路由
其余的三个配置文件配置了数据库连接注意修改MySQL服务器地址、数据库用户名和密码
启动Zipkin
在上面 Zipkin 的下载和运行已经启动了 Zipkin请在项目运行前确认 Zipkin 是否依然在运行状态。启动 Zipkin 的命令
java -jar zipkin-server-{version}-exec.jar修改项目代码
如果你是聚合的微服务项目如我提供的代码请将下面的代码添加到聚合项目的总 pom.xml 的 dependencyManagement - dependency 下
!-- 链路追踪依赖 --
dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-tracing-bom/artifactIdversion${micrometer-tracing.version}/versiontypepom/typescopeimport/scope
/dependency添加如图
然后在 pom.xml 的 properties 标签下添加这么一个properties来具体指定一个 Micrometer 的版本号具体的版本号可参考官方文档已经maven中央仓库
micrometer-tracing.version1.4.1/micrometer-tracing.version添加如图
然后在各个微服务的 pom.xml 文件的 dependencies 标签下添加那么一些代码
!-- Micrometer 整合 Brave 追踪器 --
dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-tracing-bridge-brave/artifactId
/dependency
!-- Micrometer 指标追踪 --
dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-tracing/artifactId
/dependency
!-- Micrometer 观察者 --
dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-observation/artifactId
/dependency
!-- 整合 Openfeign --
dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-micrometer/artifactId
/dependency!-- 将追踪器添加到zipkin --
dependencygroupIdio.zipkin.reporter2/groupIdartifactIdzipkin-reporter-brave/artifactId
/dependency添加如图
最后需要修改一下所有微服务模块的 bootstrap.yaml 配置文件在配置中心修改也行添加上以下配置
management:zipkin:tracing:# Zipkin 的地址如果不同注意修改endpoint: http://127.0.0.1:9411/api/v2/spanstracing:sampling:# 采集抽样1.0代表所有的链路都会被跟踪probability: 1.0添加如图
然后就可以尝试启动所有模块
接下来可以发送一个 GET 请求到 http://localhost:8080/account/accountInfo/1 来看一下 1 号账户的余额。可以看到 1 号账户的余额为 10000.00
然后可以发送一个 POST 请求到 http://localhost:8080/order/orderInfo 来新增一个订单其请求体为其中99.99为订单金额
{orderAmount: 99.99
}可以看到操作成功
然后再发送一次 http://localhost:8080/account/accountInfo/1 请求发现余额也修改成功
然后来到 Zipkin 的首页点击运行查询可以看到有三条链路信息
每条链路信息后面有一个 SHOW 按钮点击这个按钮可以看到每个微服务的详细链路调用信息和每个微服务处理花了多长时间
可以看到第一次请求这条链路花了 392.954ms时间比较长再次请求就会好很多
接下来你就可以查看到此条调用链路哪个微服务的哪个业务最慢可以针对性的调优了。