zipkin是Twitter的一个开源项目,它基于谷歌衣冠楚楚的实现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的API接口之外,它也提供了方便的UI组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,比如:可以查询某段时间内各用户请求的处理时间等。
zipkin的架构图如下:
由上面的架构图可以看的出,zipkin有四个核心组件:
-
<李>收集器:收集器组件,它主要用于处理从外部系统发送过来的跟踪信息,将这些信息转换为zipkin内部处理的跨度格式,以支持后续的存储,分析,展示等功能。李>
<李>存储:存储组件,它主要对处理收集器接收到的跟踪信息,默认会将这些信息存储在内存中,我们也可以修改此存储策略,通过使用其他存储组件将跟踪信息存储到数据库中,目前支持的数据库有Mysql,卡桑德拉和Elasticsearch。李>
<李> API: API组件,提供给UI组件,展示跟踪信息。李>
<李>界面:用户界面组件,基于API组件实现的上层应用。通过UI组件用户可以方便而有直观地查询和分析跟踪信息。李>
目前最新版的zipkin-server,是直接到官网获取最新可执行的jar,然后直接运行该jar文件,例如:
旋度ssl https://zipkin.io/quickstart。上海| bash - s java jar zipkin.jar
也可以用码头工人启动,在此通过码头工人来启动zipkin-server服务。
由于在此存储组件使用Elasticsearch,所以先通过码头工人将Elasticsearch启动,执行如下命令:
码头工人运行- d - p 9200:9200——名字es elasticsearch: 6.6.0
如果在启动elasticsearch的时候出现如下错误:
[1]:马克斯vm虚拟内存区域。max_map_count[65530]太低,增加到至少[262144]
可以先执行如下命令解决:
sysctl - w vm.max_map_count=262144
接下来,启动zipkin-server服务,执行如下命令:
码头工人运行- d - e STORAGE_TYPE=elasticsearch - e ES_HOSTS=192.168.208.134:9200 - p 9411:9411——名字zipkin openzipkin/zipkin: 2.12.1
通过浏览器打开http://192.168.208.134:9411页面,如果出现如下界面,则表示zipkin-server服务启动成功了:
<人物> 图> & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-sleuth & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-zipkin & lt;/dependency>
然后在application.yml文件需要新增如下配置:
春天: zipkin: 基url: http://192.168.208.134:9411 侦探: 取样器: 比例:1
其中spring.sleuth.sampler.percentage表示收集跟踪信息的比例,1表示全部收集,它的值的范围是0 - 1之间的。
由于新版本当中,如果需要查看各个微服务之间的依赖关系,则必需要部署zipkin-dependencies,此处还是通过码头工人来部署,由于zipkin-dependencies运行一次就会结束,所以可以让其每小时运行一次,即:
码头工人运行- e STORAGE_TYPE=elasticsearch - e ES_HOSTS=192.168.208.134:9200 openzipkin/zipkin-dependencies: 2.0.4 sh - c“crond - f”
zipkin.io/https://github.com/openzipkin/docker-zipkin
https://github.com/openzipkin/docker-zipkin-dependencies
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。