Dubbo的分层架构

 Dubbo 分层架构图如下:

Dubbo大的三层分别为 Business(业务层)、RPC 层、Remoting,并且还分为 API 层和 SPI 层。

分为大三层其实就是和我们知道的网络分层一样的意思,只有层次分明,职责边界清晰才能更好的扩展

而分 API 层和 SPI 层这是 Dubbo 成功的一点,采用微内核设计+SPI扩展,使得有特殊需求的接入方可以自定义扩展,做定制的二次开发。

接下来咱们再来看看每一层都是干嘛的。

  • Service,业务层,就是咱们开发的业务逻辑层。

  • Config,配置层,主要围绕 ServiceConfig 和 ReferenceConfig,初始化配置信息。

  • Proxy,代理层,服务提供者还是消费者都会生成一个代理类,使得服务接口透明化,代理层做远程调用和返回结果。

  • Register,注册层,封装了服务注册和发现。

  • Cluster,路由和集群容错层,负责选取具体调用的节点,处理特殊的调用要求和负责远程调用失败的容错措施。

  • Monitor,监控层,负责监控统计调用时间和次数。

  • Portocol,远程调用层,主要是封装 RPC 调用,主要负责管理 Invoker,Invoker代表一个抽象封装了的执行体,之后再做详解。

  • Exchange,信息交换层,用来封装请求响应模型,同步转异步。

  • Transport,网络传输层,抽象了网络传输的统一接口,这样用户想用 Netty 就用 Netty,想用 Mina 就用 Mina。

  • Serialize,序列化层,将数据序列化成二进制流,当然也做反序列化。

posted @ 2020-08-18 10:49  gaopengpy  阅读(1936)  评论(0编辑  收藏  举报