SpringCloud Sleuth + Zipkin 实现链路追踪
一、Sleuth介绍
为什么要使用微服务跟踪? 它解决了什么问题?
1.微服务的现状?
随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。
多服务协同工作
在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果
复杂的调用链条容易出错
在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失败
二、例子
下面给大家带来一个sleuth + zipkin 实现链路追踪的例子,如有错误,请留言指出,不胜感激。
1.获取zipkin web服务
获取zipkin的web服务有多种途径:
1.linux或者mac
curl -sSL https://zipkin.io/quickstart.sh | bash -s
可以下载zipkin最新的jar包,下载后可直接运行。
2.windows
到 https://zipkin.io/pages/quickstart.html 官网下载zipkin-server-2.12.0-exec.jar包 java -jar zipkin-server-2.12.0-exec.jar
3.docker
docker search openzipkin
搜索出很多个zipkin的镜像,选第一个就行 openzipkin/zipkin
然后 docker run -d -p 9411:9411 openzipkin/zipkin 就能在 http://localhost:9411/zipkin/ 对zipkin的控制台进行访问
2.根据原有的springcloud整合zipkin
整合zipkin非常简单,只需要在pom文件中添加相应的依赖就可以。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
对配置文件修改
spring:
application:
name: service-zuul
zipkin:
base-url: http://127.0.0.1:9411/ # zipkin服务器的地址
# 关闭服务发现,否则Spring Cloud会把zipkin的url当做服务名称
discoveryClientEnabled: false
sender:
type: web
sleuth:
sampler:
probability: 1 # 设置抽样采集率为100%,默认为0.1,即10%,这里为了测试 controller代码:
@RestController
public class SayHelloWorldHandler { @Value("${server.port}")
String port; @GetMapping("/hi")
public String home(@RequestParam String name) throws InterruptedException {
return "hello world! " + name + ",i am from port:" + port;
}
}
3.测试
1.启动zipkin的web服务
2.启动注册中心,启动刚刚写的服务
3.浏览器中输入 url 进行请求
这次的springcloud sleuth + zipkin 整合就成功了
最新文章
- MySQL的表使用
- I Think I Need a Houseboat 分类: POJ 2015-06-11 17:52 12人阅读 评论(0) 收藏
- 3.3 使用Code First数据库迁移
- webservice调用接口,接口返回数组类型
- MyEclipse导入Maven项目pom文件第一行报错,运行Tomcat报Log4j错误--解决方法
- MyBatis的关联关系补充 多对多 继承
- RMQ-ST算法的理解与实现(C++)
- request.url 端口 错误
- UNIX环境高级编程——死锁
- YCD 软件更新方法
- 【开发】iOS入门 - XCode快捷键
- 每天学点SpringCloud(四):Feign的使用及自定义配置
- CentOS+Nginx+PHP 前端部署
- easyui 日期控件限制起始相差30天
- 微信小程序 学习资料
- mui-当使用addeleventlisener()方法绑定事件时选择器无法绑定事件
- form表单提交注意事项
- Nginx Session Sticky
- 【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
- 2018.08.31 bzoj3566: [SHOI2014]概率充电器(概率dp+容斥原理)