自学内容网 自学内容网

dubbo源码学习1-服务提供方接入执行源码分析

dubbo是以Netty框架开发的服务端

dubbo 服务提供方执行流程图
在这里插入图片描述

NettyServerHandler :从Netty框架到dubbo的第一步,dubbo的 ChannelInboundHandler 处理Netty发过来的请求数据包,这一步就是Netty的API
在这里插入图片描述

NettyServer:dubbo的服务端,只做了数据包接收处理,内部包含了 MultiMessageHandler,
在这里插入图片描述

MultiMessageHandler :用于处理过个请求数据包的情况,如果是单包,则交给HeartbeatHandler
在这里插入图片描述

HeartbeatHandler:会判断当前数据包是否是心跳包,如果是按照心跳处理,如果不是,则交给AllChannelHandler处理
在这里插入图片描述

AllChannelHandler:根据数据包创建管道事件任务,并将任务交给线程池异步处理
在这里插入图片描述

以下阶段即是提交到dubbo线程池执行的步骤

ChannelEventRunnable:处理请求数据包 Request,根据事件类型处理
在这里插入图片描述

DecodeHandler:处理数据包解码
在这里插入图片描述

HeaderExchangeHandler:根据数据包类型调用不同的处理器,会判断是否双向包,如果是双向包,则需要写响应
在这里插入图片描述

DubboProtocol:dubbo协议处理器,会调用CallbackRegistrationInvoker,获取对应的Invoker并调用
在这里插入图片描述

CallbackRegistrationInvoker:会调用责任链的入口处理
在这里插入图片描述

CopyOfFilterChainNode。filterInvoker,同时请求调用处理完成之后,也会处理 众多 filters 的 onResponse

序号过滤器分组order作用
1ContextFilterproviderInteger.MIN_VALUE主要负责RPC调用上下文的传递和处理,创建RpcContext上下文
2ProfilerServerFilterproviderInteger.MIN_VALUE调用链路性能分析,它能够详细记录服务调用的执行时间、方法调用栈等关键性能数据,帮助开发者进行深度性能优化和瓶颈定位
3MetricsProviderFilterproviderInteger.MIN_VALUE + 100用于指标采集 监控 Dubbo 服务的调用性能、流量、错误率等关键数据
4EchoFilterprovider-110000主要用于处理 回声测试(Echo Test) 请求,即服务消费者通过 Dubbo 的 $echo() 方法检测服务提供者是否存活并正常响应
5ClassLoaderFilterprovider-30000切换类加载器 ,在invoke之前设置 STAGED_CLASSLOADER 和 WORKING_CLASSLOADER,在 onResponse时恢复 STAGED_CLASSLOADER
6HttpContextFilterprovider-29000将 HTTP 协议 转化为 Dubbo 内部的 RPC 上下文
7GenericFilterprovider-20000用于处理泛化调用(Generic Invoke)相关的功能
8AccessLogFilterprovider0记录服务访问日志
9ExceptionFilterprovider0进行异常处理,在onResponse时判断异常类型
10MonitorFilterprovider0在Invoker之前 count up,在 onResponse 时 count down
11TimeoutFilterprovider0在 onResponse 时进行超时判断
12TraceFilterprovider0在 Invoker之后记录链路信息
13HttpContextCallbackFilterprovider10在 onResponse 时将 RpcContext上下文转化为Http协议响应
14RestExtensionExecutionFilterprovider1000主要处理基于 HTTP/REST 协议的扩展调用逻辑
15ClassLoaderCallbackFilterproviderInteger.MAX_VALUE在 onResponse 时恢复 WORKING_CLASSLOADER

AbstractProxyInvoker :执行反射调用


原文地址:https://blog.csdn.net/qq_45325916/article/details/149137254

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!