框架设计|学习笔记

简介: 快速学习框架设计

开发者学堂课程【阿里巴巴分布式服务框架 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.远程服务是如何调用执行的。

相关文章
|
2月前
|
Linux Windows
framelesshelper框架学习
文章介绍了一个名为framelesshelper的框架,它可以创建跨平台的无边框窗口,并解决了窗口大小异常的问题。文中还提供了cmakelist.txt的适配方法和相关代码学习资源。
framelesshelper框架学习
|
6月前
|
缓存 前端开发 JavaScript
现代Web开发中的前后端分离技术探究
本文旨在探讨现代Web开发中的前后端分离技术,包括前端框架、后端接口设计、数据交互等方面。通过深入分析,我们将了解如何优化开发流程、提高性能和用户体验,以及如何选择适合项目需求的技术栈。
|
算法 C++
软件开发入门教程网之C++ 数据抽象
软件开发入门教程网之C++ 数据抽象
|
自然语言处理 数据管理 Java
WindowsGUI自动化测试框架搭建之需求整理、详细设计和框架设计
WindowsGUI自动化测试框架搭建之需求整理、详细设计和框架设计
224 0
|
设计模式 开发框架 前端开发
手把手教你封装一个健壮的MVP框架,面向接口开发。
在我们的日常开发中,我们都知道 Android 端的开发框架有 MVC,MVP,MVVM,说起这几个框架,大家也肯定都有自己的看法,甚至很多同学也都封装过。
96 0
|
前端开发 Java Apache
框架介绍 | 学习笔记
快速学习框架介绍,介绍了框架介绍系统机制, 以及在实际应用过程中如何使用。
框架介绍 | 学习笔记
|
JSON 前端开发 数据格式
前后端分离概念介绍 | 学习笔记
快速学习 前后端分离概念介绍
前后端分离概念介绍 | 学习笔记
|
前端开发 JavaScript 算法
如何学习一个框架
那么我们如何正确的学习一个框架,什么时候该看源码,学到什么程度再看源码呢?
122 0
如何学习一个框架
|
Java 开发者
框架开始 | 学习笔记
快速学习框架开始,介绍了框架开始系统机制, 以及在实际应用过程中如何使用。
|
JSON 数据处理 数据格式
MockServer 服务框架设计
MockServer 服务框架设计
下一篇
无影云桌面