当前位置: 首页 > news >正文

剖析框架代码结构的系统方法(下)

当面对Dubbo、Spring Cloud、Mybatis等开源框架时,我们可以采用一定的系统性的方法来快速把握它们的代码结构。这些系统方法包括对架构演进过程、核心执行流程、基础架构组成和可扩展性设计等维度的讨论。


在上一讲中,我们已经讨论了架构演进过程和核心执行流程这两个系统方法,今天的内容将围绕基础架构组成和可扩展性设计这两个维度展开讨论。

基础架构组成与代码结构

正如任何一个框架都存在一个核心流程一样,任何一个框架也都有一个作为内核的基础架构。正如前面提到的以Dubbo为代表的RPC框架或以MyBatis为代表的ORM框架,可以认为前者的基础架构就是网络通信、序列化、传输协议等组件,而后续则包含数据库连接管理、SQL执行等基础架构组件。Dubbo和MyBatis等框架只不过是对这些组件在不同层次上的封装。而这些组件在技术发展的过程中并没有发生重大变化,所以我们只需要掌握它们的实现原理,就可以做到触类旁通。一旦遇到基于这些组件构建的开源框架,也就可以掌握对应的设计思路和方法。

那么,如何把基础架构与现实中的具体实现框架对应起来呢?接下来,我们同样也是以RPC架构为例展开讨论。

RPC基础架构

到现在为止,RPC架构已经足足存在和发展了40余年,最早是作为RFC 674草案在1974年发布的。RPC是一种非常基础的架构,诸如Dubbo等框架都是RPC架构的一种具体实现方式。在学习这些框架的代码结构时,我们可以基于RPC基础架构来逐步进行理解。在此之前,我们先来看一下RPC基础架构的组成。

RPC基础架构包括一个服务器端组件和一个客户端组件,如下图所示。


从上图中,我们发现RPC基础架构呈现一种非常对称的结构,其中,可以看到客户端组件与职责包括如下图所示。


而对应的,服务端组件与职责则包括如下图所示。


RPC基础架构的特点在于概念和语义清晰明确,过程调用简洁且提供通用的通信机制和可扩展的序列化方式。

<
http://www.lryc.cn/news/371970.html

相关文章:

  • C语言学习笔记之结构体(一)
  • MATLAB入门知识
  • 计算机网络(5) ARP协议
  • 美团的 AI 面试有点简单
  • 编程软件怎么给机器人编程:深入探索编程与机器人技术的融合
  • unity2d Ugui--Image城市道路汽车行驶
  • 【深度学习】【Prompt】使用GPT的一些提示词
  • 如何在centos中和windows server中找到挖矿木马和消灭挖矿木马
  • Slice用法举例Python
  • 响应式网页开发方法与实践
  • feedparser - Python 解析Atom和RSSfeed
  • ARM32开发--IIC时钟案例
  • [深度学习]基于C++和onnxruntime部署yolov10的onnx模型
  • Spring-事件
  • delmia的工序设置
  • 【JavaEE精炼宝库】多线程(5)单例模式 | 指令重排序 | 阻塞队列
  • [图解]《分析模式》漫谈03-Party是什么
  • 【Numpy】一文向您详细介绍 np.abs()
  • 【AI绘画】Stable Diffusion 3开源
  • 使用ant-design/cssinjs向plasmo浏览器插件的内容脚本content中注入antd的ui组件样式
  • 南京威雅学校:初中转轨国际化教育,她们打开了成长的另一种可能
  • Linux | 标准IO编程
  • 从ES的JVM配置起步思考JVM常见参数优化
  • milvus的GPU索引
  • CleanMyMac2024最新免费电脑Mac系统优化工具
  • catia/delmia的快捷图标模式最多12个
  • 磁盘性能概述与磁盘调度算法
  • chrome浏览器设置--disable-web-security解决跨域
  • Android中蓝牙设备的状态值管理
  • 关于ReactV18的页面跳转传参和接收