dubbo源码阅读笔记--服务调用时序

本文深入剖析Dubbo服务调用时序,详细阐述从连接建立、解码到消息调用的全过程。通过梳理关键步骤如`connect`、`decode`、`invoke`,并具体解析每个阶段的代码实现,为读者提供全面的服务调用流程理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上接dubbo源码阅读笔记--暴露服务时序,继续梳理服务调用时序,下图右面红线流程。


整理了调用时序图


分为3步,connect,decode,invoke。

连接

AllChannelHandler.connected(Channel) line: 38	
HeartbeatHandler.connected(Channel) line: 47	
MultiMessageHandler(AbstractChannelHandlerDelegate).connected(Channel) line: 28	
NettyServer(AbstractPeer).connected(Channel) line: 105	
NettyServer(AbstractServer).connected(Channel) line: 191	
NettyHandler.channelConnected(ChannelHandlerContext, ChannelStateEvent) line: 70

decode

DecodeableRpcInvocation.decode(Channel, InputStream) line: 92	
DecodeableRpcInvocation.decode() line: 74	
DubboCodec.decodeBody(Channel, InputStream, byte[]) line: 138	
DubboCodec(ExchangeCodec).decode(Channel, ChannelBuffer, int, byte[]) line: 134	
DubboCodec(ExchangeCodec).decode(Channel, ChannelBuffer) line: 95	
DubboCountCodec.decode(Channel, ChannelBuffer) line: 46	
NettyCodecAdapter$InternalDecoder.messageReceived(ChannelHandlerContext, MessageEvent) line: 134	
NettyCodecAdapter$InternalDecoder(SimpleChannelUpstreamHandler).handleUpstream(ChannelHandlerContext, ChannelEvent) line: 70	

invoke

AllChannelHandler.received(Channel, Object) line: 54	
HeartbeatHandler.received(Channel, Object) line: 90	
MultiMessageHandler.received(Channel, Object) line: 28	
NettyServer(AbstractPeer).received(Channel, Object) line: 123	
NettyHandler.messageReceived(ChannelHandlerContext, MessageEvent) line: 91	
NettyHandler(SimpleChannelHandler).handleUpstream(ChannelHandlerContext, ChannelEvent) line: 88	
DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline$DefaultChannelHandlerContext, ChannelEvent) line: 564	
DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(ChannelEvent) line: 791	
Channels.fireMessageReceived(ChannelHandlerContext, Object, SocketAddress) line: 296	
NettyCodecAdapter$InternalDecoder.messageReceived(ChannelHandlerContext, MessageEvent) line: 148	
NettyCodecAdapter$InternalDecoder(SimpleChannelUpstreamHandler).handleUpstream(ChannelHandlerContext, ChannelEvent) line: 70	

BidServiceImpl.bid(BidRequest) line: 24	
Wrapper3.invokeMethod(Object, String, Class[], Object[]) line: not available	
JavassistProxyFactory$1.doInvoke(T, String, Class<?>[], Object[]) line: 46	
JavassistProxyFactory$1(AbstractProxyInvoker<T>).invoke(Invocation) line: 72	
RegistryProtocol$InvokerDelegete<T>(InvokerWrapper<T>).invoke(Invocation) line: 53	
ExceptionFilter.invoke(Invoker<?>, Invocation) line: 64	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
TimeoutFilter.invoke(Invoker<?>, Invocation) line: 42	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
MonitorFilter.invoke(Invoker<?>, Invocation) line: 75	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
TraceFilter.invoke(Invoker<?>, Invocation) line: 78	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
ContextFilter.invoke(Invoker<?>, Invocation) line: 70	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
GenericFilter.invoke(Invoker<?>, Invocation) line: 132	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
ClassLoaderFilter.invoke(Invoker<?>, Invocation) line: 38	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
EchoFilter.invoke(Invoker<?>, Invocation) line: 38	
ProtocolFilterWrapper$1.invoke(Invocation) line: 91	
DubboProtocol$1.reply(ExchangeChannel, Object) line: 113	消息解析,message->invoker
HeaderExchangeHandler.handleRequest(ExchangeChannel, Request) line: 84	
HeaderExchangeHandler.received(Channel, Object) line: 170	
DecodeHandler.received(Channel, Object) line: 52	
ChannelEventRunnable.run() line: 82	


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值