非常全面 Dubbo 原理和机制详解( 二 )

非常全面 Dubbo 原理和机制详解

文章插图
对照上面的整体架构图 , 大致分为以下8大步骤:
1、服务提供者启动,开启Netty服务,创建Zookeeper客户端,向注册中心注册服务;
2、服务消费者启动,通过Zookeeper向注册中心获取服务提供者列表,与服务提供者通过Netty建立长连接;
3、服务消费者通过接口开始远程调用服务,ProxyFactory通过初始化Proxy对象 , Proxy通过创建动态代理对象;
4、动态代理对象通过invoke方法,层层包装生成一个Invoker对象,该对象包含了代理对象;
5、Invoker通过路由,负载均衡选择了一个最合适的服务提供者,在通过加入各种过滤器,协议层包装生成一个新的DubboInvoker对象;
6、再通过交换成将DubboInvoker对象包装成一个Reuqest对象,该对象通过序列化通过NettyClient传输到服务提供者的NettyServer端;
7、到了服务提供者这边,再通过反序列化、协议解密等操作生成一个DubboExporter对象,再层层传递处理,会生成一个服务提供端的Invoker对象;
8、这个Invoker对象会调用本地服务,获得结果再通过层层回调返回到服务消费者,服务消费者拿到结果后,再解析获得最终结果 。
以上 , 是关于 Dubbo 原理机制及架构设计等的详细解析 。
本文对理解、掌握和使用 Dubbo 有所帮助,可以作为 Dubbo 的参考学习资料,建议收藏、时常温顾 。
如果觉得有用,请点击【 推荐 】支持下,谢谢~
 作者简介陈睿 | mikechen , 10年+大厂架构经验,「mikechen 的互联网架构」系列文章作者 , 专注互联网架构技术 。
阅读「mikechen 的互联网架构」的更多技术文章合集: 
Java并发 | JVM | MySQL | Spring | Redis | 分布式 | 高并发

推荐阅读