上接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
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
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
原文地址:http://blog.csdn.net/liuqi0622/article/details/45504341