架构设计(服务跟踪)


架构设计(服务跟踪)

服务跟踪

微服务调用链路

# 链路跟踪背景
随着业务的发展,系统规模越来越大,微服务之间的调用关系越来越复杂;
客户端发起的请求,会经过不同的微服务调用,形成一条复杂的调用链路,返回最终的结果;
每条链路上的依赖的服务如果出现延时过高、运行出错都会导致请求失败

# 链路跟踪作用
错误追踪:快速发现服务调用链路在哪个微服务中出错
延时分析:统计链路中每个依赖的服务运行的的时间,判断延时

# 链路跟踪组件
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)

经验分享 程序员 微信小程序 职场和发展