博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud 核心组件——链路追踪
阅读量:5090 次
发布时间:2019-06-13

本文共 2229 字,大约阅读时间需要 7 分钟。

1. Sleuth 

官方文档:

Sleuth 是一个组件,专门用于记录链路数据的开源组件

org.springframework.cloud
spring-cloud-starter-sleuth

引入依赖,当我们调用服务时,控制台打印了如下的日志

[order-service,3f56eedd64dd06cc,3b587ae59f8f1a0b,false]

1)第一个值:spring.application.name的值

2)第二个值:3f56eedd64dd06cc,Sleuth 生成的一个 ID,叫 Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID

3)第三个值:3b587ae59f8f1a0b、Span ID 基本的工作单元,获取元数据,如发送一个http

4)第四个值:false,是否要将该信息输出到zipkin服务中来收集和展示。

注意:调用服务时会发现,只有第一次调用时显示了信息,以后再调用就不显示,为了解决这个问题,你可以在代码里加一些日志输出,比如:

package com.jwen.order_service.service.impl;import com.jwen.order_service.domain.ProductOrder;import com.jwen.order_service.service.ProductOrderService;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class ProductOrderServiceImpl implements ProductOrderService {    private final Logger logger = LoggerFactory.getLogger(getClass());    @Override    public ProductOrder save(int userId, int productId) {        logger.info("ProductOrderServiceImpl save");        return null;    }}

 

2. Zipkin

大规模分布式系统的 APM 工具(Application Performance Management),基于 Google Dapper 的基础实现,和 Sleuth 结合可以提供可视化 Web 界面分析调用链路耗时情况。

Zipkin 组成:Collector、Storage、Restful API、Web UI 组成。官网:

同类型产品还有:鹰眼(EagleEye)、CAT、Pinpoint、tackDriver Trace (Google)

我们采用运行 jar 包的方式启动 Zipkin,首先去官网下载 jar 包

然后用 java 命令启动 jar 包

java -jar zipkin.jar

 

3. 使用 Zipkin+Sleuth 业务分析调用链路分析

仅仅是启动 Zipkin 还不能使用,还需要和 Sleuth 整合,告诉 Zipkin 可以分析哪些服务

Spring Cloud 官方文档:

Sleuth收集跟踪信息通过 http 请求发送给 Zipkin Server,Zipkin Server 进行跟踪信息的存储以及提供 Rest API 即可,Zipkin UI调用其 API 接口进行数据展示。默认存储是内存,可也用 mysql、或者 elasticsearch 等存储。

1)加入依赖

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

里面包含 spring-cloud-starter-sleuth、spring-cloud-sleuth-zipkin

2)配置 zipkin.base-url

3)配置采样百分闭 spring.sleuth.sampler

配置文件 application.yml 添加以下配置

#服务的名称spring:  application:    name: order-service#zipkin服务所在地址  zipkin:    base-url: http://localhost:9411/#配置采样百分比,开发环境可以设置为1,表示全部,生产就用默认  sleuth:    sampler:      probability: 1

当我们访问测试的服务:

 

我们打开,可以查看到服务调用情况

 

 

 

 

 

 

推荐阅读:

 

转载于:https://www.cnblogs.com/jwen1994/p/11442474.html

你可能感兴趣的文章
Python内置函数(29)——help
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
Mysql性能调优
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
getElement的几中属性介绍
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>