精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

Spring Cloud SleuthSpring Cloud Sleuth是一个相当小的简单项目,它为日志记录和跟踪提供了一些有用的功能。如果仔细研究“使用LogstashTCPAppender"小节中讨论的示例,就可以很容易地看出它不可能过滤与单个请求相关的所有日志。在基于微服务的环境中,在处理进入系统的请求时,关联应用程序交换的消息也非常重要。这是创建Spring Cloud Sleuth项目的主要动机。如果为应用程序启用了Spring Cloud Sleuth,它会向请求添加一些H.
摘要由CSDN通过智能技术生成

Spring Cloud Sleuth

Spring Cloud Sleuth是一个相当小的简单项目,它为日志记录和跟踪提供了一些有用的功能。如果仔细研究“使用LogstashTCPAppender"小节中讨论的示例,就可以很容易地看出它不可能过滤与单个请求相关的所有日志。在基于微服务的环境中,在处理进入系统的请求时,关联应用程序交换的消息也非常重要。这是创建Spring Cloud Sleuth项目的主要动机。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

如果为应用程序启用了Spring Cloud Sleuth,它会向请求添加一些HTTP标头,这允许开发人员将请求与响应和已交换的消息链接起来,这个交换是由独立应用程序完成的,而链接则可以通过RESTful API 之类的接口完成。它定义了两个基本的工作单位:跨度(Span)和跟踪(Trace) 。每一个单位都由唯一的64位ID标识。跟踪ID的值等于跨度ID的初始值。跨度是指单个交换,其中的响应将作为对请求的反应而发送。

精通springcloud:分布式日志记录和跟踪使用,Spring Cloud Sleuth

 

跟踪通常称为关联IT (Correlation IT) ,它将帮助开发人员链接来自不同应用程序的所有日志,而这些日志是在处理进入系统的请求期间生成的。每个跟踪和跨度ID都会添加到Slf4J映射诊断上下文(MDC)中,因此,可以在日志聚合器(Log Aggregator) 中提取具有给定跟踪或跨度的所有日志。MDC只是一个存储当前线程上下文数据的映射。进入服务器的每个客户端请求都由不同的线程处理。由于这个原因,每个线程都可以在线程生命周期内访问其MDC的值。除了spanld和traceld之外,Spring Cloud Sleuth还向MDC添加了以下两个跨度。

口appName: 生成日志条目的应用程序的名称。

口exportable:指定是否应将日志导出到Zipkin。除了上述功能之外,Spring Cloud Sleuth还可以提供以下功能。

口对常见分布式跟踪数据模型的抽象,这允许与Zipkin的集成。

口记录计时信息,以帮助进行延迟分析。它还包括不同的采样策略以管理导出到Zipkin的数据量。

口与参与通信的常见Spring组件集成,如servlet过滤器、异步端点、RestTemplate、消息通道、Zuul 过滤器和Feign客户端等。

将 Sleuth与应用程序集成

要为应用程序启用Spring Cloud Sleuth功能,只需将spring-cloud-starter-sleuth启动器添加到依赖项即可。

<dependeney>

<groupId>org。springframework. cloud</groupId>

<artifactId>spring-cloud- starter-sleuth</artifactId>

</dependency>

包含此依赖项之后,应用程序生成的日志条目的格式已更改。具体如下所示。

2017-12-30 00:21:31. 639

INFO [order-service, 9a3fef0169864e80 , 9a3fef0169864e80, false]

49212 --- [ni0-8090- exec-6]

p.p.s.order。
controller.OrderController :

Products found: [("id":2, "name":"Test2", "price":1500},

("id":9, "name" :"Test9","price":245011

2017-12-30 00:21:31.683

INFO [order-service, 9a3fef0169864e80, 9a3fef0169864e80, false ]

49212 --- [n10-8090- exec-6]

p.p.s.order。controller。OrderController :

Customer found: "id":2, "name":"Adam Smith",

"typel":"REGULAR", "accounts":

[("id":4, "number":"1234567893". "balance":50001,

("id":5, "number" :"1234567894", "balance"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值