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

本文详细介绍了Netty服务端接收到客户端请求后的处理流程。从NettyHandler接收到消息开始,经过多个处理器,最终到达业务逻辑处理层。过程中涉及消息解码、心跳检测、服务查找等关键步骤。

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

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


在创建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本地暴露服务》。

具体流程如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值