dubbo源码分析系列.pdf

dubbo源码分析系列   知秋整理 原文博客:/ywbrj042/home 更多精彩学习内容,请关注本人github 一 项 目工程结构介绍   摘要: dubbo是目前国内最流行的分布式服务框架,已经俨然成为行业的标准了,多数无自研能力的公司都在 使用这个框架,而且这个框架本身非常具有代表性,即使很多公司自研的分布式服务框架也都是对dubbo的扩 展或者借鉴了该框架,因此研究它的源码意义还是非常大的,对于掌握分布式服务框架的原理和实现细节有 着非常好的帮助。 项 目源码地址   本系列文章是基于当当网维护的dubbox版本进行分析的,源码地址参 考:/dangdangdotcom/dubbox 项 目源码结构   我们下载源码后导入到ide中可以看到如此之多的项目组成,真的是非常之多的项目组成,而且用到的技术也非常 多,redis、zookeeper,netty等等,不禁让人心生畏惧,这么大的工程源码该如何下手阅读呢?我们必须理清楚这 些工程的职责和关系,才能够抽丝剥茧的把dubbo搞清楚。 核心项 目间关系   结构 图说明   为了让图保持清晰明了,该图特意忽略了一些具体的api实现模块,只保留了核心的一些借口定义模块,而具体技术 实现的模块忽略了。通过分析dubbo的各项目及组成关系分析出该项目如下特点。 1. duubo的项目划分得非常细。因此导致工程数目达到几十个之多,这样的好处就是开发者可以根据自己的需求 去编译符合需求的包,只保留自己需要用到的模块。缺点是导致工程接口的非常复杂。 2. 强大的可扩展性和灵活性。dubbo抽象出了很多核心接口,而针对这些接口都提供了不同的实现了,开发者可 以根据自己的需要选择各种实现,也可以根据需要扩展开发自己的实现,具有非常强大的扩展和定制能力。 核心模块职责介绍   dubbo­common   通用模块,定义了几乎所有dubbo模块都会使用到的一些通用与业务领域无关的工具类 (io处理、日志处理、配置处 理、类处理等等),线程池扩展、二进制代码处理、class编译处理、json处理、数据存储接口,系统版本号等等通 用的类和接口。 dubbo­rpc­api   分布式服务框架的核心是rpc,这是最基本的功能,这个模块定义了rpc的一些抽象的rpc接口和实现类,包括服务发 布,服务调用代理,远程调用结果及异常,rpc调用网络协议,rpc调用监听器和过滤器等等。该模块提供了默认的 基于dubbo协议的实现模块,还提供了hessian、http、rest、rmi、thrift和webservice等协议的实现,还实现了injvm 的本地调用实现,灵活性强,非常通用,能够满足绝大多数项目的使用需求,而且还可以自行实现rpc协议。 dubbo­registry­api   注册中心也是最重要的组成部分,它是rpc中的consumer和provider两个重要角色的协调者。该项目定义了核心的注 册中心接口和实现。具体实现留给了其它项目。有一个默认的实现模块,组册中心提供了muti

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档