1.Zipkin

  是一个开放源代码分布式的跟踪系统

  它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现

  每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图,展示多少跟踪请求经过了哪些服务,该系统让开发者可通过一个web前端轻松地收集和分析数据,可非常方便的监测系统中存在的瓶颈

  Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch

  生产数据量大的情况则推荐使用Elasticsearch

2.Spring Cloud Sleuth

  为服务之间的调用提供链路追踪,通过使用Sleuth可以让我们快速定位某个服务的问题

  分布式服务追踪系统包括:数据收集、数据存储、数据展示

  通过Sleuth产生的调用链监控信息,让我们可以得知微服务之间的调用链路,但是监控信息只输出到控制台不太方便查看

  Sleuth和Zipkin结合,将信息发送到Zipkin,利用Zipkin的存储来存储信息,利用Zipkin UI来展示信息

1.使用curl下载

curl -sSL https://zipkin.io/quickstart.sh | bash -s

下载了文件zipkin-server-2.19.1-exec.jar

2.启动服务

java -jar zipkin-server-2.19.-exec.jar

通过http://localhost:9411可访问zipkin的监控页面

因为还没有客户端,所以还没有数据

默认启动方式会将日志数据存在内存中,一旦服务重启会清空数据,可以使用es进行持久化存储

3.应用

添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

spring-cloud-dependencies

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

配置

spring.application.name=demo
spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1.0

样本采集量,默认为0.1,为了测试修改为1,正式环境一般使用默认值

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class Demo { @RequestMapping("hello")
public String hello() {
return "Hello World!";
}
}

运行示例,在postman里执行http://localhost:8080/hello

再查看http://localhost:9411,出现了刚刚访问的服务,选择并点击追踪

选择demo服务,点击Find Traces

点击调用记录查看详情页面,可以看到每一个服务所耗费的时间和顺序

3.通过ElasticSearch进行存储

ElasticSearch安装启动(安装说明

zipkin服务启动命令改为

java  -DSTORAGE_TYPE=elasticsearch -DES_HOSTS=http://localhost:9200 -jar zipkin-server-2.19.1-exec.jar

zipkin会在es中创建以zipkin开头日期结尾的index,并且默认以天为单位分割

使用kibana查看数据(kibana使用

https://zipkin.io/pages/quickstart.html

最新文章

  1. jQuery.extend和jQuery.fn.extend的区别【转】
  2. web.config中的HttpCookie.HttpOnly属性
  3. BZOJ1407 [Noi2002]Savage
  4. h5 canvas 小球移动
  5. 九度oj 1349 数字在排序数组中出现的次数
  6. heritrix启动问题修正
  7. NodeJS - Express 4.0下使用app.dynamicHelpers错误
  8. ASP.NET 常识
  9. POJ 1811 Prime Test 素性测试 分解素因子
  10. tree conflict svn 怎么解决
  11. 二维数组int[3][2]在内存中的分布方式
  12. 05_Linux网络配置及CRT远程
  13. Jenkins redeploy artifacts
  14. 20165312 2017-2018-2 《JAVA程序设计》第5周学习总结
  15. PAT 1013 数素数
  16. Redis select选择数据库
  17. BZOJ1407: [Noi2002]Savage exgcd
  18. Discuz x3.2利用阿里云cdn处理https访问亲测教程
  19. ListView的优化问题
  20. Learning PHP Design Patterns

热门文章

  1. CSS float 父元素高度自适应
  2. C 语言项目中.h文件和.c文件的关系
  3. POJ2139-Six Degrees of Cowvin Bacon-(Floyd_Warshall)
  4. Good Article Good sentence HDU - 4416 (后缀自动机)
  5. BZOJ 1818: [Cqoi2010]内部白点 扫描线+树状数组
  6. java 参数传递、对象、封装
  7. luogu_1156: 垃圾陷阱
  8. P3350 [ZJOI2016]旅行者
  9. 一起学Makefile(六)
  10. 在itop4412移植linux4.14和设备树遇到的问题及解决