架构

dubbo框架设计介绍

2019-04-05  本文已影响176人  绝色天龙

简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。相信国内用dubbo的互联网公司还是很多的,springcloud虽然是挂靠在鼎鼎大名的spring团队下,但是感觉国内使用的公司没有使用dubbo的多,而且现在dubbo重新启动维护,加上捐给了apache基金会,以后的发展前途也是一片敞亮,dubbo与springcloud的区别和各自的优缺点可以参看这篇Dubbo和Spring Cloud微服务架构对比,感觉分析的还是挺到位的。总的来说,可以概括为,springcloud涵盖的微服务概念和组件更广泛,是一整套的解决方案;而dubbo只是完成了微服务中某些部分的功能,但是两者也都是各有所长的,具体用哪个框架还是仁者见仁智者见智。

整体设计

既然能够开源出来,那源代码一定是有着很深的功力的,不然不是丢脸么,dubbo的整体设计也是深刻贯彻了分层的思想,每一层各司其职。盗用官网的一张图:



其实刚开始看到这么一张图的时候,我是一脸懵逼的,这讲的啥啊,红红蓝蓝绿绿的,一个完整的方块愣是被横一刀竖一刀划得乱七八糟,还有各种箭头指向来指向去的。但是对于一个比较复杂的系统或者框架来讲,分层是一个重要的概念。这就跟我们搞web应用一样,为什么要搞ssh,ssm呢?就是要把每一层负责的任务或者功能从整体中抽象出来,然后各自干各自的,这样自己内部的事情可以内部消化,不对外部的其他层产生影响,整个系统就会变得可维护也易理解。接着来分析这张图

官网图例说明:

各层说明

官网关系说明

模块说明

这里官网的模块说明应该是基于较早的版本,现在dubbo最新的版本是2.7.1,模块的划分更细了。

依赖关系

调用链

领域模型

在 Dubbo 的核心领域模型中:

上一篇 下一篇

猜你喜欢

热点阅读