Dubbo3高级特性「框架与服务」RPC全链路调用追踪参数传递(OpenTracing)
Posted 浩宇の天尚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo3高级特性「框架与服务」RPC全链路调用追踪参数传递(OpenTracing)相关的知识,希望对你有一定的参考价值。
上一节【RPC调用上下文的介绍】中建立了全链路调用的环境中必需的环境信息,例如应用名、调用的ip、等其他信息属性等。本节主要会建立相关的
特性说明
通过 Dubbo 中的 Attachment 在服务消费方和提供方之间隐式传递参数。
使用场景
上下文信息是RPC框架很重要的一个功能,使用RpcContext可以为单次调用指定不同配置。如分布式链路追踪场景,其实现原理就是在全链路的上下文中维护一个traceId,Consumer和Provider通过传递traceId来连接一次RPC调用,分别上报日志后可以在追踪系统中串联并展示完整的调用流程,这样可以更方便地发现异常,定位问题。
上一节的复用
Dubbo中的RpcContext是一个ThreadLocal的临时状态记录器,当接收到RPC请求,或发起RPC请求时,RpcContext的状态都会变化。比如:A调B,B调C,则B机器上,在B调C之前,RpcContext记录的是A和B的信息,在B调C之后,RpcContext记录的是B和C的信息。
上下文的种类
Dubbo3中,RpcContext被拆分为四大模块(ServerContext、ClientAttachment、ServerAttachment和ServiceContext),它们分别承担了不同的指责:
- ServiceContext&#x
以上是关于Dubbo3高级特性「框架与服务」RPC全链路调用追踪参数传递(OpenTracing)的主要内容,如果未能解决你的问题,请参考以下文章
Dubbo3高级特性「框架与服务」 针对出现异常的RPC的服务功能降级机制
Dubbo3高级特性「框架与服务」框架与服务的异步调用实践以及开发模式
Dubbo3高级特性「框架与服务」Dubbo3客户端和服务端的泛化调用机制体系