微服务架构中,一个由客户端发起的请求在后端系统中会经历多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或者错误都会引起整个请求的最后失败,因此我们需要工具来监控链路间的调用。
Sleuth 的使用需要Zipkin,我们只需要下载Zipkin jar包运行即可
Zipkin下载地址 https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
springCloud F版整合了ZipkinServer
启动 Zipkin
访问 http://localhost:9411/zipkin/ 可以看到
如果想要服务被链路监控,只要在配置文件中添加配置即可
以之前的服务提供方8001 8002 服务消费方82 为例
在pom中添加zipkin依赖
<!--zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
在配置文件中添加如下内容,spring节点下
zipkin:
base-url: http://localhost:9411 #zipkin服务启动端口
sleuth:
sampler:
probability: 1
#采样值在0-1之间,1表示全部采集
下面是81配置,8001 8002 类似
server: port: 81 #端口号 spring: application: name: cloud-provider-81 #服务名 zipkin: base-url: http://localhost:9411 #zipkin服务启动端口 sleuth: sampler: probability: 1 #采样值在0-1之间,1表示全部采集 eureka: client: # 是否从Eureka抓取注册信息 单节点情况下无用 集群情况下才能配合robbion使用负载均衡 fetch-registry: true # 注册如Eureka 用 true register-with-eureka: true service-url: # 设置与eureka server交互的地址查询和注册服务都需要这个地址 向注册中心注册 defaultZone: http://localhost:7001/eureka/
启动 8001 8002 81 和监控中心7001
通过 81 访问几次8001 8002
http://localhost:81/consumer/myLb
访问 http://localhost:9411/zipkin/ 可以看到服务间的调用关系
下期开始介绍springCloud Alibaba相关内容