Spring Cloud 微服务入门教程(十一):Spring Cloud Sleuth zipkin 服务追踪链路监控
2020年03月02日 12:26:19 · 本文共 2,873 字阅读时间约 10分钟 · 3,991 次浏览上一节我们讲了服务熔断和降级,基本已经可以搭建出一个比较完整的微服务架构了,但是微服务架构是分布式的,每个服务之间相互独立运行又相互依赖,如果一旦出现问题,我们很难排查是哪里出现了问题,所以还需要一个服务追踪的解决办法,那就是 Spring Cloud Sleuth 可以实现服务追踪和链路监控。
Google开源的 Dapper链路追踪组件,并在2010年发表了论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》,这篇文章是业内实现链路追踪的标杆和理论基础,具有非常大的参考价值。目前,链路追踪有Google的Dapper,Twitter 的Zipkin,以及阿里的Eagleeye (鹰眼)等。本节主要讲解在Spring Cloud Sleuth中集成Zipkin。在Spring Cloud Sleuth中集成Zipkin非常的简单,只需要引入相应的依赖和做相关的配置即可。
安装必要的环境
在开始之前,你还需要准备一下环境,我使用的是在docker中运行Zipkin,因为主题是微服务,docker的安装就不再赘述了,直接提供docker的安装镜像命令:
docker run -d -p 9411:9411 openzipkin/zipkin
添加依赖
我们以democlient为演示案例,修改POM文件,添加spring-cloud-starter-zipkin依赖,它其实还会依赖spring-cloud-starter-sleuth和spring-cloud-sleuth-zipkin,所以我们不用写这两个的依赖了,只写spring-cloud-starter-zipkin即可,POM文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud</artifactId>
<groupId>net.renfei</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>net.renfei</groupId>
<artifactId>democlient</artifactId>
<version>1.0.0</version>
<name>demo-client</name>
<description>演示服务</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>net.renfei</groupId>
<artifactId>apicenter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
然后修改配置文件,为了方便演示,我直接修改bootstrap.yml配置文件:
spring:
zipkin:
base-url: http://localhost:9411/
sleuth:
sampler:
rate: 100
其中配置了spring.zipkin.base-url,这个是配置我们Zipkin的访问地址;spring.sleuth.sampler.rate是配置了每秒速率限制,如果不做限制当业务量非常大时我们的网络和监控服务可能会有非常大的压力,所以需要配置一个限制,每秒上报多少,基本就能找到原因了。
然后我们依次启动注册中心、配置中心、各个服务模块、服务网关,然后访问以下democlient提供的服务,再到Zipkin上去看一下,就可以看到这次请求的链路和内容了,如图:
在控制台我们也看到了链路的ID,最后的true就是指对外发送给Zipkin,如图:
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1003332
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。
- 前后端分离项目接口数据加密的秘钥交换逻辑(RSA、AES)
- OmniGraffle 激活/破解 密钥/密匙/Key/License
- Parallels Desktop For Mac 16.0.1.48911 破解版 [TNT]
- Redis 未授权访问漏洞分析 cleanfda 脚本复现漏洞挖矿
- CleanMyMac X 破解版 [TNT] 4.6.0
- OmniPlan 激活/破解 密钥/密匙/Key/License
- 人大金仓 KingbaseES V8 R3 安装包、驱动包和 License 下载地址
- Sound Control 破解版 2.4.2
- Parallels Desktop For Mac 15.1.4.47270 破解版 [TNT]
- Parallels Desktop For Mac 16.0.0.48916 破解版 [TNT]
- 博客完全迁移上阿里云,我所使用的阿里云架构
- 微软确认Windows 10存在bug 部分电脑升级后被冻结
- 大佬们在说的AQS,到底啥是个AQS(AbstractQueuedSynchronizer)同步队列
- 比特币(BTC)钱包客户端区块链数据同步慢,区块链数据离线下载
- Java中说的CAS(compare and swap)是个啥
- 小心免费主题!那些WordPress主题后门,一招拥有管理员权限
- 强烈谴责[wamae.win]恶意反向代理我站并篡改我站网页
- 讨论下Java中的volatile和JMM(Java Memory Model)Java内存模型
- 新版个人网站 NEILREN4J 上线并开源程序源码
- 我站近期遭受到恶意不友好访问攻击公告