您的位置:首页 > 其它

Dubbo——服务端接收请求的处理流程

2017-05-15 16:49 169 查看

服务端接收请求的处理流程

在创建NettyServer对象时,初始化了NettyHandler对象,该对象中的ChannlHandler赋值为NettyServer对象。在接受到消息之后,调用NettyHandler.messageReceived方法,后续的调用链为:NettyServer—>MultiMessageHandler-->HeartbeatHandler—> AllChannelHandleràDecodeHandleràHeaderExchangerHandleràDubboProtocol$requestHandler。在上述调用链中创建了Response对象并封装了RpcInvocation对象。具体的流程在《7.1请求/响应的处理流程》中讲解。

最后在DubboProtocol$requestHandler处理RpcInvocation对象,根据URL地址生成serviceKey,再查找到服务端的Invoker对象,然后经过过滤器链和监听器链(在暴露服务时创建的,具体见《监听器链》《过滤器链》的讲解),最后在JavassistProxyFactory.getInvoker方法创建的AbstractProxyInvoker对象中通过反射的方式完成具体业务层的调用。见《3.3.1本地暴露服务》。

具体流程如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息