您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: ?验证码,看不清楚?请点击刷新验证码 必填



? 求知 文章 文库 Lib 视频 iProcess 课程 认证 咨询 工具 讲座 Modeler ? bet36账号怎么注册 ?
会员???
?
? ?
?
??
每天15篇文章
不仅获得谋生技能
更可以追随信仰
?
? ? ?
? ?
?订阅
? 捐助
Spring Cloud Sleuth和zipkin微服务跟踪
?
38 次浏览 ????评价: ?
?2019-9-25
? ?
?
编辑推荐:

本文来自于csdn,文章主要介绍了Dapper的术语定义,以及Zipkin是什么,和在SpringCloud中使用Zipkin的详细过程等相关内容。

Spring Cloud Sleuth是为Spring Cloud实现了分布式追踪解决方案。

Spring Cloud Sleuth借用了Dapper的术语:

跨度(Span):基本的工作单位。例如,发送一个RPC是一个新的跨度,就像向RPC发送响应一样。跨度由跨度的唯一64位ID和跨度所包含的另一个64位ID标识。Spans还具有其他数据,例如描述,时间戳事件,键值注释(标记),导致它们的跨度的ID以及进程ID(通常为IP地址)。

跨度启动和停止,并跟踪他们的时间信息。一旦你创建了一个跨度,你必须在将来某个时候停止它。

开始追踪的初始跨度被称为root span。该跨度的span id的值等于trace id。

痕迹(Trace):一组形成树状结构的跨度。例如,如果您正在运行分布式大数据存储,则跟踪可能由放入请求组成。

标注(Annotation):用于及时记录事件的存在。用于定义请求开始和结束的一些核心注释是:

cs- 客户端发送 - 客户端发出请求。这个注释描述了跨度的开始。

sr- 服务器已收到 - 服务器端收到请求并开始处理。如果从这个时间戳中减去cs时间戳,将会收到网络延迟。

ss- 服务器发送 - 在请求处理完成时(当响应被发送回客户端时)注释。如果从这个时间戳中减去sr时间戳,将会收到服务器端处理请求所需的时间。

cr- 客户端收到 - 表示跨度结束。客户端已经成功接收到服务器端的响应。如果从这个时间戳中减去cs时间戳,那么将会收到客户端接收服务器响应所需的全部时间。

Span和Trace在系统中与Zipkin Annotation一起显示的可视化示例:

Zipkin:

官方介绍:Zipkin是一个分布式追踪系统。它有助于收集解决微服务架构中延迟问题所需的时序数据。它管理这些数据的收集和查找。

应用程序用于向Zipkin报告时间数据。Zipkin UI还提供了一个依赖关系图,显示每个应用程序有多少跟踪请求。如果你正在解决延迟问题或错误问题,则可以根据应用程序,跟踪长度,注释或时间戳过滤或排序所有跟踪。一旦选择了一个跟踪,你可以看到每个跨度所花费的总跟踪时间的百分比,从而可以确定问题应用程序。

在SpringCloud中使用Zipkin:

1.springcloud创建zipkin-server

依赖除了springcloud的基础依赖外再添加zipkin依赖,如下


org.springframework.cloud
spring-cloud-starter-eureka


io.zipkin.java
zipkin-autoconfigure-ui


io.zipkin.java
zipkin-server

启动类添加标签@EnableZipkinServer启动zipkin,代码如下

/**
* @author wxy
*/
@SpringBootApplication
@EnableZipkinServer
@EnableEurekaClient
public class ZipKinServerApplication {

public static void main(String[] args) {
SpringApplication.run(ZipKinServerApplication.class, args);
}
}

配置文件,如下

spring:
application:
name: micoserice-zipkin-server
server:
port: 9994
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
instance-id: ${spring.application.name}:${server.port}
prefer-ip-address: true

启动后可直接访问localhost:9994,可看到zipkin的页面

除了这种方式还可通过docker安装,可查看教程https://github.com/openzipkin/zipkin

2.为微服务提供者消费者添加zipkin依赖和配置

添加依赖



org.springframework.cloud
spring-cloud-starter-zipkin

添加配置


spring:
zipkin:
base-url: http://localhost:9994
sleuth:
sampler:
percentage: 1.0

spring.sleuth.sampler.percentage 是监控的百分比,默认的是0.1表示10%,这里给1.0表示全部监控

spring.zipkin.base-url:是zipkin-server的服务路径

依次启动服务如下

我这里启动了zuul,ribbon以及user服务,通过zuul网管依次访问ribbon和user,查看zipkin如下图:

示例代码

? ?
38 次浏览 ?评价: 差? 订阅 捐助
相关文章

阻碍使用企业架构的原因及克服方法
世界级企业架构的行业挑战
企业架构和SOA架构的角色将融合
什么最适合您的组织?
相关文档

企业架构与ITIL
企业架构框架
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

企业架构设计
软件架构案例分析和最佳实践
嵌入式软件架构设计—高级实践
企业级SOA架构实践
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
?
?

关于我们 | 联系我们 |?京ICP备10020922号?京公海网安备110108001071号