过程比较简单,分为三步:
- 下载zipkin.jar
- 项目中引入zipkin包
- 配置项目中的yml
1.下载zipkin.jar
据说spring cloud 从F版开始就把Zipkin的服务端分出去成了一个独立的Jar包,可以下载来用
https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
也可以看官网:https://zipkin.io/pages/quickstart.html
下载之后可以直接启动:
java -jar zipkin-server-2.12.9-exec.jar
启动界面:
可以看到有一个可以访问的地址:http://127.0.0.1:9411
2.项目中引入zipkin包
在各个会发生调用的微服务中,添加jar包(每个微服务都相当于是一个客户端),这个包包含Sleuth所以不需要单独引Sleuth:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
3.配置项目中的yml
在每个微服务中都添加配置:
重点看zipkin和sleuth的配置:
server:
port: 8203 # 消费者实例的端口号
spring:
application:
name: consume # 消费者的实例名称
zipkin:
base-url: http://127.0.0.1:9411/ # zipkin服务器的地址
sender:
type: web # 设置使用http的方式传输数据
sleuth:
sampler:
probability: 1 # 设置抽样采集为100%,默认为0.1,即10%
eureka:
instance:
instance-id: consume-${server.port}
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://localhost:8201/eureka/ # 注册中心的服务地址,用于将消费者注册进去
#defaultZone: http://localhost:8201/eureka/,http://localhost:8221/eureka/ # 注册中心的服务地址,用于将消费者注册进去
feign:
hystrix:
# 开启 Feign对Hystrix的支持
enabled: true
# 需要改变ribbon轮询调用方式的服务名
PRODUCT-SERVICE:
ribbon:
# 改为随机的方式
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
management:
endpoints:
web:
exposure:
include: health,info,hystrix.stream #根据需求增删路径
启动各个微服务。
访问一个服务:
然后刷新下:http://127.0.0.1:9411/zipkin/,会发现服务名中出现了选择项:
点击查找按钮,可以看到已经有数据了:
完毕。