1 zipkin分布式监控客户端
Zipkin是一种分布式跟踪系统。它有助于收集解决微服务架构中的延迟问题所需的时序数据。它管理这些数据的收集和查找。Zipkin的设计基于Google Dapper论文。应用程序用于向Zipkin报告时序数据。Zipkin UI还提供了一个依赖关系图,显示了每个应用程序通过的跟踪请求数。如果要解决延迟问题或错误,可以根据应用程序,跟踪长度,注释或时间戳对所有跟踪进行筛选或排序。选择跟踪后,您可以看到每个跨度所需的总跟踪时间百分比,从而可以识别有问题的应用程序。
docker安装zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
配置自动启动
docker update stoic_kapitsa --restart=always
在浏览器端访问:http://localhost:9411
2 改造consumer/provider工程
对consumer和provider工程分别做如下操作:
- 引入sleuth的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
zipkin的启动器包含了sleuth的依赖。
引入后启动报错:
ERROR o.s.b.SpringApplication - [reportFailure,834] - Application run failed
java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com.gykjit.spd.system.config.DrugDeviceWebSocket$$EnhancerBySpringCGLIB$$97ac366b
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
- 配置zipkin的相关信息
spring:
zipkin:
# zipkin服务器的地址
base-url: http://192.168.1.94:9411
# 关闭服务发现,否则springCloud会把zipkin的url当作服务名称
discovery-client-enabled: false
# 数据发送的方式:ACTIVEMQ RABBIT KAFKA WEB
sender:
type: web
sleuth:
# 设置抽样采集率,默认0.1(即10%),这里设置为100%
sampler:
probability: 1
3.重启consumer/provider服务后,访问消费者:http://192.168.1.94:9411/zipkin/。查看zipkin客户端如下
这时候我们可以在zipkin的ui控制界面看看效果,可以发现,服务之间的调用关系,服务名称已经清晰展现出来了,同时包括服务之间的调用时常等详细信息以及更细的信息都可以通过控制台看到。
界面看看效果,可以发现,服务之间的调用关系,服务名称已经清晰展现出来了,同时包括服务之间的调用时常等详细信息以及更细的信息都可以通过控制台看到。