程序笔记
发布时间:2022-07-12 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了详解 Apache SkyWalking 跨进程传播协议,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
简介
SkyWalking 跨进程传播协议是用于上下文的传播,本文介绍的版本是3.0,也被称为为sw8
协议。
Header项
Header应该是上下文传播的最低要求。
- Header名称:
sw8
.
- Header值:由
-
分隔的8个字段组成。Header值的长度应该小于2KB。
Header值
Header值中具体包含以下8个字段:
- 采样(Sample),0 或 1,0 表示上下文存在, 但是可以(也很可能)被忽略;1 表示这个追踪需要采样并发送到后端。
- 追踪ID(Trace Id),是 BASE64 编码的字符串,其内容是由
.
分割的三个 long 类型值, 表示此追踪的唯一标识。
- 父追踪片段ID(Parent trace segment Id),是 BASE64 编码的字符串,其内容是字符串且全局唯一。
- 父跨度ID(Parent span Id),是一个从 0 开始的整数,这个跨度ID指向父追踪片段(segment)中的父跨度(span)。
- 父服务名称(Parent service),是 BASE64 编码的字符串,其内容是一个长度小于或等于50个UTF-8编码的字符串。
- 父服务实例标识(Parent service instance),是 BASE64 编码的字符串,其内容是一个长度小于或等于50个UTF-8编码的字符串。
- 父服务的端点(Parent endpoint),是 BASE64 编码的字符串,其内容是父追踪片段(segment)中第一个入口跨度(span)的操作名,由长度小于或等于50个UTF-8编码的字符组成。
- 本请求的目标地址(Peer),是 BASE64 编码的字符串,其内容是客户端用于访问目标服务的网络地址(不一定是 IP + 端口)。
Header值示例
上面的说明太干了,我们来举一个具体的例子,可以更好的理解。
有两个服务,分别叫onemore-a和 onemore-b,用户通过http调用onemore-a的/onemore-a/get
,然后onemore-a的/onemore-a/get
又通过http调用onemore-b的/onemore-b/get
,流程图就是这样的:
![详解 Apache SkyWalking 跨进程传播协议 详解 Apache SkyWalking 跨进程传播协议](http://code.js-code.com/res/2022/07-12/07/9dfe25d78e1106ff7e1fdb26a67adf93.jpg)
那么,我们在onemore-b的/onemore-b/get
的Header中就可以发现一个叫做sw8
的key,其值为:
1-YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYymTgzODExMDQ1NTAwMDk=-YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYymTgzODExMDQ1NTAwMDg=-2-b25lbW9yZS1h-ZTFkMmZiYjYzymJhNDMwNDk5YWY4OTVjMDQwZTMyZmVAMTkyLje2OC4xLjewMQ==-L29uZW1vcmUtYS9nZXQ=-MTkyLje2OC4xLjewMjo4MA==
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
以-
字符进行分割,可以得到:
- 1,采样,表示这个追踪需要采样并发送到后端。
- YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYymTgzODExMDQ1NTAwMDk=,追踪ID,解码后为:a4ec6fc8ccab4bb4b682064698cc97e6.74.16218381104550009
- YTRlYzZmYzhjY2FiNGJiNGI2ODIwNjQ2OThjYzk3ZTYuNzQuMTYymTgzODExMDQ1NTAwMDg=,父追踪片段ID,解码后为:a4ec6fc8ccab4bb4b682064698cc97e6.74.16218381104550009
- 2,父跨度ID。
- b25lbW9yZS1h,父服务名称,解码后为:onemore-a
- ZTFkMmZiYjYzymJhNDMwNDk5YWY4OTVjMDQwZTMyZmVAMTkyLje2OC4xLjewMQ==,父服务实例标识,解码后为:e1d2fbb63bba430499af895c040e32fe@192.168.1.101
- L29uZW1vcmUtYS9nZXQ=,父服务的端点,解码后为:/onemore-a/get
@H_279_13@mTkyLje2OC4xLjewMjo4MA==,本请求的目标地址,解码后为:192.168.1.102:80
扩展Header项
扩展Header项是为高级特性设计的,它提供了部署在上游和下游服务中的探针之间的交互功能。
- Header名称:
sw8-x
- Header值:由
-
分割,字段可扩展。
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
扩展Header值
当前值包括的字段:
- 追踪模式(Tracing Mode),空、0或1,默认为空或0。表示在这个上下文中生成的所有跨度(span)应该跳过分析。在默认情况下,这个应该在上下文中传播到服务端,除非它在跟踪过程中被更改。
微信公众号:万猫学社
微信扫描二维码
关注后回复「电子书」
获取12本Java必读技术书籍
大佬总结
以上是大佬教程为你收集整理的详解 Apache SkyWalking 跨进程传播协议全部内容,希望文章能够帮你解决详解 Apache SkyWalking 跨进程传播协议所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。