框架设计|学习笔记

简介: 快速学习框架设计

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:框架设计】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9477


框架设计

一、dubbo 原理

1.dubbo 原理-框架设计

image.png

上图解释了 dubbo 的整个框架设计分层结构

(1)business 是业务逻辑层,只有一层,第一行 service 服务层,对面向接口编程,写一个接口,写一个实现远程调用也只需要调接口的方法。对于用户编程来说,到这一层就结束了,剩下的都是 dubbo 的原理。

(2)rpc 层是完成远程过程调用的一层,分了很多种小层

①config 配置层,主要是来封装配置文件里边解析出来的信息,像 reference config,service config。也就是说每一个标签都有它对应的 config 来封装这个标签的信息。

②proxy 服务代理层,就是利用代理的方式,比如生成客户端的代理对象,服务端的代理对象,代理对象互相来调用方法。

③registry 是注册中心层,很多服务都要注册到注册中心。包括消费者要从注册中心订阅所需要的服务来调用。这一层就是完成注册中心的相关功能,比如服务的发现以及服务的注册。

④Cluster 是路由层,进行负载均衡。比如说 invokeer 调用者,要调用很多的服务,有可能同一个服务在五六台机器上都有,cluster 做负载均衡。

⑤Monica 监控层,每一次的调用信息等数据都会发给监控层,监控层收到数据以后以界面的方式展示出来,simple Monica 软件可以在界面上展示出所有的监控数据。

⑥Protocol 远程调用层,整个封装 rpc 调用,rpc 调用核心就是 invokeer、Protocol 和 importer,它们就可以完成一次远程调用。

(3)remoting 解决远程通信

①exchange 信息交换层,创建一个客户端,一个服务端,架起管道进行数据的互联互通,

②transport 传输层,传输数据是用 transport 来封装传输。

③Serialize 序列化层,就是在整个传输的过程中,数据要序列化出去。收到数据以后还要反序列化回来,对象才能获得数据。

(4)consumer,跟消费者相关的 API 在一边;provider 跟服务提供者有关的 API 在一边;凡是所有标注的绿色都是 double 的接口,蓝色都是实现,接口之间的继承关系实线是实现于接口的,所有的虚线箭头是启动时整个初始化的规律。红色是整个的调用逻辑,黑色的箭头是依赖顺序。

(5)这些层对应 double 的每一个分包,double 包里有 rpc 层、remoting 层、registry、monitor、config 等等

每一层大概都会有对应的一个分包,都是单项依赖,上层依赖下层。

2.double 原理-启动解析、加载配置信息

3.服务提供者是如何将服务暴露到注册中心的

4.服务消费者是如何引用远程服务的,

5.远程服务是如何调用执行的。

相关文章
|
JSON 数据处理 数据格式
MockServer 服务框架设计
MockServer 服务框架设计
|
6月前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
177 0
|
存储 安全 NoSQL
由浅入深理解SpringSecurityOauth2框架原理
由浅入深理解SpringSecurityOauth2框架原理
由浅入深理解SpringSecurityOauth2框架原理
|
设计模式 算法 关系型数据库
⭐️C#零基础到入门 ⭐️| 带你认识编程中的—23种设计模式 & 六大设计原则
设计模式🎈 设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式使代码开发真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。只有夯实地基搭好结构,才能盖好坚壮的大楼。也是我们迈向高级开发人员必经的一步。
|
缓存 开发框架 监控
Android项目架构设计深入浅出
本文结合个人在架构设计上的思考和理解,介绍如何从0到1设计一个大型Android项目架构。
3981 2
Android项目架构设计深入浅出
|
存储 前端开发
RxSwift+MVVM项目实战-MVVM架构介绍以及实战初体验
RxSwift+MVVM项目实战-MVVM架构介绍以及实战初体验
519 0
|
架构师 测试技术 API
深入浅出聊一聊自动化架构!
深入浅出聊一聊自动化架构!
201 1
|
SQL 分布式计算 大数据

热门文章

最新文章