Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案,Sleuth可以结合Zipkin做链路跟踪。Spring Cloud Sleuth的服务链路跟踪功能可以帮助我们快速发现错误根源,以及监控分析每条请求链路上的请求性能。Sleuth的主要工作原理是拦截请求,并在日志中加入额外的Span和Trace的相关信息。从Sleuth 2.0.0开始,Sleuth使用Brave作为调用链工具库。Brave是一个用于捕捉分布式系统之间调用信息的工具库,可以将这些信息以Span的形式发送给Zipkin。
Zipkin是一个分布式跟踪系统,用户可以将Sleuth发送的时序数据存储在Elasticsearch或者MySQL中,Zipkin UI根据数据存储显示服务之间的请求调用详情和依赖调用关系图。
创 建 两 个 工 程 : SampleSleuthZipkinApplication 和ZipkinServerApplication。
1.添加Maven依赖
情况一:如果你只使用Sleuth,在不需要集成Zipkin的情况下,请将如下Maven依赖添加到工程中。
情况二:如果你想要Sleuth和Zipkin结合使用,请添加Zipkin依赖项。
2.修改配置文件
3.创建SampleZipkinApplication工程
4.创建一个异步的Service测试验证服务
5.创建Sleuth的接受用户请求的Controller实现类
下面是通过模拟不同HTTP调用请求的调用链日志输出。
http://127.0.0.1:3380/hi对应同步请求场景,日志输出内容如下。
http://127.0.0.1:3380/async对应异步请求场景,日志输出内容如下。
http://127.0.0.1:3380/start对应同步异步混合请求场景,日志输出内容如下。
说明:上述代码参考了Spring Cloud Sleuth官方源码实现(Sleuth源码可在GitHub中查找),更多关于Sleuth的有趣实例可参考官网代码。
1.引入Maven依赖
2.使用@EnableZipkinServer启动应用
访 问 http://127.0.0.1 :9411/zipkin/ 首 页 , 将 展 示 所 有 在testsleuthzipkin应用上发生的调用链信息,可以看到一次请求的调用整体延迟和Span数,如下图所示。
下面一行代表一次完整的请求http://127.0.0.1:3380/start,单击可以查看调用链详情,如下图所示。
来源:
https://www.toutiao.com/article/7136385535459590691/?log_from=375fb615e0fb2_1661913671467
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!