Dubbo源码阅读-服务调用过程

本文深入探讨了Dubbo服务调用的过程,从消费者请求的发送,包括代理调用、过滤器处理、序列化,到提供者的接收。详细解析了协议构造、序列化操作,并对数据发送的各个环节进行了拆解。
摘要由CSDN通过智能技术生成

1.概述

Dubbo 服务调用过程比较复杂,包含很多步骤,比如:发送请求、编解码/报文协议、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。本篇文章将会重点分析请求的发送与接收、编解码、线程派发以及响应的发送与接收等过程,至于服务降级、过滤器链和序列化后续在其他文章进行分析,暂时忽略。

2.源码

2.1 服务调用方式

2.2 消费者请求数据发送过程

proxy0#sayHello(String)
  —> InvokerInvocationHandler#invoke(Object, Method, Object[])
    —> MockClusterInvoker#invoke(Invocation)
      —> AbstractClusterInvoker#invoke(Invocation)
        —> FailoverClusterInvoker#doInvoke(Invocation, List<Invoker<T>>, LoadBalance)
          —> Filter#invoke(Invoker, Invocation)  // 包含多个 Filter 调用
            —> ListenerInvokerWrapper#invoke(Invocation) 
              —> AbstractInvoker#invoke(Invocation) 
                —> DubboInvoker#doInvoke(Invocation)
                  —> ReferenceCountExchangeClient#request(Object, int)
                    —> HeaderExchangeClient#request(Object,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值