分布式解决方案服务与调用链系统.pdf
分布式服务追踪与调用链系统
如何构建新一代SkyWalking服务追踪框架
1.生产环境调用接口报错了,如何定位?
2.微服务服务追踪框架构设计原理
3.Sleuth+zipkin实现分布式服务追踪
4.SkyWalking超强大实现分布式服务追踪
5.SkyWalking架构设计原理
产生的背景
在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也
就变得越来越复杂。一个HTTP请求会调用多个不同的微服务来处理返回最后的结果,在这
个调用过程中,可能会因为某个服务出现网络延迟过高或发送错误导致请求失败,这个时候,
对请求调用的就显得尤为重要了。SpringCloudSleuth提供了分布式服务链路
的解决方案。下面介绍SpringCloudSleuth整合Zipkin的解决方案。
服务追踪常用框架
1.Sleuth+Zipkin
2.阿里的鹰眼系统
3.Skywalking
Sleuth简单的介绍
Sleuth每一次RPC调用请求都会生成一个spanid记录每一次rpc请求的信息,还有
一个traceid全局唯一id;
实现原理:
1.开始方调用接会生成一个全局的id,traceid放入到请求中;
2.每次调用rpc接会产生一个新的spanid,放入到请求中;
Sleuth可以结合Zipkin可以实现界面化的形式管理我们接口依赖信息。
Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识通过traceId(全局
的ID,是的点,根据需求来决定在哪生成traceId)、spanI(请求ID,比
如一次rpc等)和parentId(上一次请求ID,用来将前后的请求串联起来),被收集
到的span会汇聚成一个tree,从而提供出一个request的整体流程。
Sleuth+Zipkin整合
ZipkinServer环境
在SpringBoot2.0版本,已不推荐自己定制了,而是直接提供了编译好的
jar包。详情可以查看官网:
注意:zipkin官网已经提供定制了,使用jar运行即可。
默认端启动zipkin服务
java–jarzipkin.jar默认端;9411
指定端启动9411
java-jarzipkin.jar--server.port=8080
Zipkin