Dubbo整体俯瞰图

本文档详细介绍了Dubbo的核心架构,包括Service和Config层、Proxy层、Registry层、Cluster层、Monitor层、Protocol层、Exchange层、Transport层和Serialize层。通过对这些层的剖析,帮助读者理解Dubbo的工作原理,适合面试准备和深入学习。同时提供了阅读源码的实用技巧,以帮助初学者逐步掌握源码阅读方法。
摘要由CSDN通过智能技术生成

本课程的事先声明

  1. 本课程剖析的Dubbo源码基于目前最新的2.7.8版本,并且主要剖析其中的核心代码,有兴趣的读者可以在了解主体代码的情况下自行阅读其他源码。
  2. 本课程会提供全部写过的包含注释的源码。

本课程的作用

  1. 在面试前,发现自己的技术深度不够,亮点不足,想快速了解源码,以便增加自己在面试中的筹码。
  2. 在入职新公司时,想对一门技术有比较深入的了解,而不是简单用于CRUD,从而能快速掌握新技术。
  3. 最后就是那些想自己尝试阅读源码,但是又看不进繁琐的大块书,本课程提供的完整核心源码剖析,能够让你踏入自己阅读源码之路,起码不会从入门到放弃。

单刀直入-上全景图

Dubbo整体框架图片

上面这张图片是从官网复制过来的,看起来密密麻麻,大家先混个眼熟,后面会一层层像剥洋葱一样,层层解析各个组件的作用,最后读完本课程后再回过头来看这张图,就会感觉了如指掌。这里先大概说明一下各个层的作用。

Service和Config层

Service 和 Config 层为 API 接口 层 ,是为了让 Dubbo 使用方方便地发布服务和引用服务:对于服务提供方来说需要实现服务接口,然后使用 ServiceConfig API 来发布该服务:对于服务消费方来说需要使用 ReferenceConfig 对服务接口进行代理 。

Proxy层

Proxy 服务代理层:该层主要是对服务消费端使用的接口进行代理,把本地调用透明地转换为远程调用;另外对服务提供方的服务实现类进行代理。简单来说,就是使用动态代理替换原本的接口实现。

Registry层

Registry 服务注册中心层:服务提供者启动时会把服务注册到服务注册中消费者启动时会去服务注册中心获取服务提供者的地址列表, Registry 层主要功能是封装服务地址的注册与发现逻辑。

Cluster层

Cluster 路由层:封装多个服务提供者的路由规则、负载均衡、 集群容错的实现,并桥接服务注册中心。

Monitor层

Monitor 监控层:用来统计 RPC 调用次数和调用耗时时间。

Protocol层

Protocol 远程调用层:封装 RPC 调用逻辑,扩展接口为 Protocol。

Exchange层

Exchange 信息交换层 :封装请求响应模式,同步转异步等。

Transport层

Transport 网络传输层: Mina 和 Netty 抽象为统一接口。默认使用netty4。

Serialize层

Serialize 数据序列化层 : 对网络传输的数据进行序列化和反序列化。可以学习一下里面的拆包粘包的处理。

阅读源码的一些技巧

最后啰嗦一下一些技巧,第一个就是千万不要有强迫症,虽然大部分程序员都是有点完美主义者,但是因为框架的源码不是你写的,所以你肯定没法一下子就明悟了这些代码的逻辑,因此只能先略过大部分代码,先梳理整体架构,然后再慢慢深入了解。

第二个就是大胆猜想小心求证,感觉像在破案一样,就是你在略过大部分的时候,可以猜测一下这些在干什么,后续带着问题深入了解的时候,就会有恍然大悟的感觉,像get到大神的小心机一样。

Dubbo源码的话,大家可以自己去官网下载:https://github.com/apache/dubbo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gemini技术窝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值