dubbo3高级特性「框架与服务」rpc全链路调用追踪参数传递(opentracing)

浩宇の天尚 浩宇の天尚     2023-03-22     134

关键词:

上一节【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的服务功能降级机制(代码片段)

服务降级降级Dubbo服务特性说明推荐使用相关限流降级组件(如Sentinel)以达到最佳体验,微服务治理/限流降级服务降级是指服务在非正常情况下进行降级应急处理。使用场景某服务或接口负荷超出最大承载能力范围,需要进行... 查看详情

dubbo3高级特性「框架与服务」框架与服务的异步调用实践以及开发模式

异步调用在Dubbo中发起异步调用机制,从而提高对应的服务的调用的吞吐能力和调用机制特性说明技术背景从2.7.0开始,Dubbo的所有异步编程接口开始以CompletableFuture为基础,基于NIO的非阻塞实现并行调用,客户端不需要启动多线... 查看详情

dubbo3高级特性「框架与服务」dubbo3客户端和服务端的泛化调用机制体系(代码片段)

实现泛化实现(服务端泛化)服务端泛接口实现方式主要用于服务器端没有API接口及模型类元的情况,参数及返回值中的所有POJO均用Map表示,通常用于框架集成,比如:实现一个通用的远程服务框架,可通过实现RawTypeService接口... 查看详情

dubbo3高级特性「框架与服务」服务分组及服务分组聚合实现(代码片段)

【Dubbo3高级特性】「框架与服务」Nacos作为注册中心-服务分组及服务分组聚合实现NACOS注册中心properties文件dubbo.application.name=nacos-registry-demo-consumerdubbo.registry.address=nacos://$nacos.address:localhost:8848?username=nacos&pass 查看详情

dubbo3高级特性「提升系统安全性」ssl的安全服务能力(代码片段)

Dubbo3的TLS保证传输安全特性说明内置的DubboNettyServer和新引入的gRPC协议都提供了基于TLS的安全链路传输机制。TLS的配置都有统一的入口。使用场景对全链路有加密需求的用户可以使用TLS。使用方式API的模式使用方式Provider端建立... 查看详情

dubbo3高级特性「框架与服务」服务端通过线程池隔离技术实现资源限制和资源隔离机制(代码片段)

线程池隔离Dubbo3会提供一种新的线程池管理方式,用于隔离服务之间的线程池调用机制,主要用于服务提供者端进行实现服务资源隔离和容器隔离机制,最终的效果就是服务提供者内部的各个服务通过线程池隔离且互... 查看详情

dubbo3高级特性「框架与服务」在dubbo3中进行参数校验及自定义验证扩展机制(代码片段)

Dubbo3的参数验证机制参数验证功能是基于JSR303实现的,用户只需标识JSR303标准的验证annotation,并通过声明filter来实现验证。JSR303https://jcp.org/en/jsr/detail?id=303Maven依赖<dependency><groupId>javax.validation</groupId><artif 查看详情

dubbo3高级特性「框架与服务」服务并发控制及集群负载均衡的实践指南(含扩展spi)(代码片段)

Dubbo3中的并发控制XML方式配置限制类的线程隔离控制(服务端)限制com.xxx.ApiService的每个方法,服务器端并发执行(或占用线程池线程数)不能超过10个:<dubbo:serviceinterface="com.xxx.ApiService"executes... 查看详情

dubbo3高级特性「框架与服务」自定义dubbo服务容器及扩展容器实现分析

了解Dubbo3中服务自定义容器类型和使用背景介绍Dubbo3的服务容器是一个standalone的启动程序,因为后台服务不需要Tomcat或JBoss等Web容器的功能,如果硬要用Web容器去加载服务提供方,增加复杂性,也浪费资源。所以服务通常不需要... 查看详情

dubbo3高级特性「框架与服务」开发内嵌式注册中心及多注册中心的开发实践(代码片段)

开发内嵌式注册中心引入Maven依赖<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId> 查看详情

介绍说明」dubbo3新特性概览的介绍说明

Dubbo3的微服务框架系列​​【Dubbo3入门到精通】总体技术体系介绍及技术指南(目录)​​本系列专题是关于Dubbo的简单介绍,涵盖Dubbo的核心概念、基本使用方式以及Dubbo3核心功能。Dubbo的基本介绍ApacheDubbo是一款微服务开发框... 查看详情

dubbo3高级特性「系统级别检查」服务端和消费端启动时检查

...有些服务不关心,必须有一方先启动,或者针对于相关的dubbo3所对应的微服务利链路种形成了环路依赖或者相互引用关系。注意:如果你的Sprin 查看详情

深入浅出dubbo3原理及实战「新特性简介」dubbo3新特性要点之rpc协议介绍(代码片段)

RPC通信协议Dubbo3提供了Triple(Dubbo3)、Dubbo2协议,这是Dubbo框架的原生协议。除此之外,Dubbo3也对众多第三方协议进行了集成,并将它们纳入Dubbo的编程与服务治理体系,包括:gRPC、Thrift、JsonRPC、Hessian2、REST等。以下... 查看详情

深入浅出dubbo3原理及实战「新特性简介」dubbo3新特性概览的介绍说明

Dubbo3的微服务框架系列本系列专题是关于Dubbo的简单介绍,涵盖Dubbo的核心概念、基本使用方式以及Dubbo3核心功能。Dubbo的基本介绍ApacheDubbo是一款微服务开发框架,它提供了RPC通信与微服务治理两大关键能力。使用Dubbo开... 查看详情

dubbo3.0.0正式发布,王者归来!(代码片段)

Dubbo简介如果你还不知道什么是Dubbo,先来一波扫盲:ApacheDubbo是一款高性能、轻量级的开源Java服务框架Dubbo的6大特性:1、面向接口代理的高性能RPC调用;2、服务自动注册与发现;3、智能负载均衡策略;4、高度可扩展能力;5、... 查看详情

dubbo3终极特性「流式协议体系」dubbo3服务的流式处理和响应式编程实战开发指南(代码片段)

...取消和超时Triple新特性之Stream(流式处理)Stream流式处理是Dubbo3新提供的一种调用类型,在以下场景时建议使用流的方式:接口需要发送大量数据,这些数据无法被放在一个RPC 查看详情

alibaba微服务技术系列「dubbo3.0技术专题」总体技术体系介绍及技术指南(序章)

Dubbo的背景介绍Dubbo的功能特性面向接口代理的高性能RPC调用;服务自动注册与发现;智能负载均衡策略;高度可扩展能力;运行期流量调度;可视化的服务治理与运维;Dubbo的框架结构Dubbo的发展历程2011/10/27:阿里巴巴巴宣布Dub... 查看详情

springcloud+dubbo3=王炸!(代码片段)

前言全链路异步化的大趋势来了随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。在微服务架构下,大量的应用都是SpringCloud分布式架构,这种架构总体上是全链路同步模式。全链路同步... 查看详情