31、分布式追踪中的上下文传播与工具应用

分布式追踪中的上下文传播与工具应用

上下文传播的重要性与挑战

上下文传播能被多个工具共享十分重要,因为添加上下文传播的插桩工作十分繁重。所有的跨领域工具都需要插桩来随请求传播上下文,而且无论部署何种跨领域工具,这种插桩都是相同的。若插桩能够复用,那么系统只需插桩一次,而非每次部署新工具时都进行插桩。

分布式追踪中的行李概念及其局限

分布式追踪中已有行李(baggage)的概念,它是一系列键值对。任何组件都能向请求的行李中添加新的键值对,后续组件也能从中查询值,这已经催生了一些有趣的用例,例如在 Jaeger 留言板上有关于安全审计、流量标记和测试用例的讨论。

然而,当出现多父因果关系时,这种简单的键值对定义就显得力不从心。多父因果关系主要通过两种方式出现:
- 多个父跨度(Multiple parent spans) :当某个执行跨度在因果关系上依赖于多个父跨度或兄弟跨度完成时,就需要将来自父跨度或兄弟跨度的上下文传递给新的跨度,并将它们合并。
- 响应传播(Response propagation) :并非所有分布式追踪实现都需要或使用响应传播,但很多实现会用到。一般来说,跨领域工具可能会修改其上下文,并将修改后的上下文传回父级。此时,父级需要将响应上下文与原始上下文合并。由于父级在这期间可能也在继续工作并修改了自身的上下文,所以合并操作是必要的。

简单来说,需要能够将两个上下文合并为一个。合并操作在请求的两个并发分支汇合的任何地方都会发生,它是并发程序的基础,而分布式架构本质上就是并发的。

以分布式追踪中使用的键值行李

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值