架构设计(服务跟踪)
架构设计(服务跟踪)
服务跟踪
微服务调用链路
# 链路跟踪背景 随着业务的发展,系统规模越来越大,微服务之间的调用关系越来越复杂; 客户端发起的请求,会经过不同的微服务调用,形成一条复杂的调用链路,返回最终的结果; 每条链路上的依赖的服务如果出现延时过高、运行出错都会导致请求失败 # 链路跟踪作用 错误追踪:快速发现服务调用链路在哪个微服务中出错 延时分析:统计链路中每个依赖的服务运行的的时间,判断延时 # 链路跟踪组件 spring cloud sleuth + zipkin 阿里巴巴天眼、美团cat 京东hydra、新浪watchman
sleuth实现原理
sleuth span示例(收集到zipkin时,该对象会转换成zipkin中的span对象格式)
zipkin 延时分析
收集、分析、展示跟踪信息
# collector组件:收集跟踪信息 收集跟踪信息,将其转换为zipkin内部使用的span格式 可使用http同步收集、mq异步收集 # storage组件:存储跟踪信息 默认将跟踪信息存储到内存中, 也可存到mysql、elasticsearch等数据库中 # restful api组件:提供外部访问接口 给客户端展示跟踪信息、外部系统访问实现监控 # web ui组件:展示跟踪信息 调用restful api接口,给用户展示跟踪信息
zipkin span示例(annotations对应logs、binaryAnnotations对应tags)