介绍
Zipkin是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。
如果日志文件中有trace ID,则可以直接跳至该trace ID。否则,您可以基于属性进行查询,例如服务,操作名称,标签和持续时间。将为您总结一些有趣的数据,例如在服务中花费的时间百分比以及操作是否失败。
Zipkin安装
zipkin2.0后官网强烈建议用jar或者docker搭建zipkin server,不建议自己搭建zipkin server,并且zipkin server最高只支持到spring boot 2.0.9,后续的高版本服务是启动不了的。
拉取镜像
docker pull openzipkin/zipkin
启动镜像
docker run
--name wisefly-zipkin #名称
-p 9411:9411 #暴露端口
-e "STORAGE_TYPE=elasticsearch" #以es方式存储
-e "ES_HOSTS=10.0.1.104:9200,10.0.1.117:9200,10.0.1.127:9200" #es地址
-e "ES_INDEX_SHARDS=5" #分区
-e "ES_INDEX_REPLICAS=1" #副本
-e "ES_INDEX=zipkin" # 索引
-e "COLLECTOR_KAFKA_ENABLED=true" #以kafka方式传输
-e "KAFKA_BOOTSTRAP_SERVERS=10.0.1.104:9092,10.0.1.117:9092,10.0.1.127:9092" #kafka地址
-e "KAFKA_GROUP_ID=zipkin" #组
-e "KAFKA_TOPIC=zipkin" #主题
-e "KAFKA_STREAMS=1" #线程数
-idt openzipkin/zipkin #镜像名
访问
(公司内网,外网进不去)
Zipkin引入
pom文件中添加,包含了链路追踪sleuth与链路展示zipkin
应用连接Zipkin
spring:
# zipkin配置
zipkin:
base-url: http://10.0.1.104:9411/
enabled: true
# sleuth配置
sleuth:
sampler:
robability: 1.0
应用通过kafka传数据到Zipkin
pom中添加两个包,配置文件中添加以下配置
spring:
# kafka配置
cloud:
stream:
kafka:
binder:
brokers: 10.0.1.104:9092,10.0.1.117:9092,10.0.1.127:9092
zkNodes: 10.0.1.104:2181,10.0.1.117:2181,10.0.1.127:2181
总结
完成以上操作能实现web请求的链路信息通过kafka传输到zipkin,zipkin传输到es做存储。通过zipkin server提供的管理工具,能查询出整个平台的所有链路信息以及查询具体某条链路的详细信息(包含经过的服务,服务的处理方法,服务的处理时间)。