14 | 标记透传:如何基于微服务技术进行标记透传?
高楼
你好,我是高楼。
这节课,我们详细讲讲怎样基于微服务技术进行标记透传的落地。
微服务已经成为现在主流的分布式架构了。在微服务架构中,服务之间的调用越来越复杂,问题排查的难度也越来越高,这让链路追踪成为微服务架构的基础设施,甚至可以说是性能分析人员不可缺少的“神兵利器”。
在全链路压测场景中,链路追踪技术需要额外解决的是压测标记的识别、记录、并传递的问题。上节课我们讲过,在微服务架构下标记透传需要满足以下两个需求:
跨线程间的透传要保证压测标记在跨线程的情况下不丢失,这里面包括异步场景、线程池复用等情况;
跨服务间的透传要保证压测标记在跨服务网络调用的情况下不丢失,而且可以做到全链路双向传递,这里面包括服务内异步任务(MQ)、服务内其它基于 TCP 协议的 RPC 框架等情况。
方案设计
考虑到我们的电商项目是 Spring Cloud 技术栈,所以我们可以使用 Spring Cloud Sleuth 这一套跨服务间透传的原生方案。但是 Sleuth 在跨线程间透传的实现上底层使用的是 ThreadLocal,而项目又有 MQ 异步透传的需求,所以它并不能完全满足我们标记透传的需求。所以在这里,我们考虑引入数据上下文对象来解决这个问题。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了基于微服务技术的标记透传在解决微服务架构中复杂服务调用和链路追踪问题中的关键作用。文章首先介绍了如何在网关服务中设计全局过滤器来获取压测标记,并演示了在订单服务中获取标记的实验过程。接着,文章讲解了如何在JMeter中验证订单服务能否成功获取标记,并介绍了抽取数据上下文对象的过程。随后,文章详细讲解了如何在Zipkin链路追踪系统中验证透传的压测标记,并通过系统改造的过程展示了标记透传的实际应用。最后,文章总结了标记透传的使用场景和技术实现,并提出了思考题引发读者思考。整体而言,本文内容丰富,涵盖了微服务架构中的关键问题和解决方案,对于需要深入了解微服务链路追踪和标记透传的技术人员具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全链路压测实战 30 讲》,新⼈⾸单¥59
《全链路压测实战 30 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 果然爸爸数据库用影子库的话,感觉测的更多的还是服务。
作者回复: 是整个架构的容量。不止是服务哦。
2021-11-1821 - Geek_133b54请问老师上课用到的源代码从哪里可以获取到
作者回复: 等更新完专栏,我们会都放到环境搭建的文章中。
2021-12-08 - 一生逍遥老师,没有看到具体appcontext在哪个项目里面使用,麻烦告知一下
作者回复: AppContext是新建的类。在后面的具体的项目改造中都会使用。 每一个项目都会用。
2021-12-04
收起评论