锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 默认分类
  3. 深入探索:软件架构模式的精华总结

深入探索:软件架构模式的精华总结

0
  • 默认分类
  • 发布于 2024-09-21
  • 0 次阅读
黄健
黄健

Mark Richards写了一个50多页的小册子叫《软件架构模式》,里面介绍了五种架构:分层架构、事件驱动架构、微服务架构、微内核架构和基于空间的架构。其他的架构风格,我在之前的文章中都介绍过,简单说一下:基于空间的架构。

基于空间的架构模式

基于空间的架构模式也叫云架构模式(cloud architecture pattern),是设计用来解决扩展性和并发性问题的。传统架构长成下面这样,拓扑结构仍呈三角形形态,其中最宽部分为web服务器(最容易进行规模化,无状态服务水平扩容即可),而最窄部分则为数据库(最难进行规模化)。

基于空间的架构风格通过将数据库从系统的事务处理中剥离,以解决应用程序扩展性的限制。因此,该架构被称为空间型架构。这个风格得名于计算机科学术语元组空间,即具有共享内存的多个并行处理器概念。通过使用在事务处理期间复制到内存中的数据网格来替代数据库,实现了高度可扩展性。应用程序数据保存在内存中,并在所有活动处理单元之间进行复制,并使用数据泵异步与后台数据库同步。随着用户负载增加和减少,可以动态启动和关闭处理单元,从而实现可变可伸缩性。由于系统的事务处理过程中没有涉及数据库,因此消除了数据库瓶颈,在应用程序内提供近乎无限的可扩展性。

听上去是解决高并发问题的利器。但是实际项目中使用的却很少,为什么呢?由于所有事务数据都存储在内存中,因此整体数据大小成为空间型架构的限制因素。试想一下将45TB的关系数据库放入内存中!鉴于该架构风格技术上的复杂性,如果预算紧张且时间有限,则不宜选择该架构。此外,在测试环境中实现非常高负载用户既昂贵又耗时,这使得难以测试应用程序在可扩展性方面表现如何。因此,该架构风格相对整体敏捷性(快速响应变化能力)较低。由于空间型架构始终是最终一致性的,在内存数据网格更新达到数据库之前可能需要很长时间。因此,对于那些需要系统之间高水平数据一致性的系统来说,并不适合考虑使用空间型架构。

基于空间的架构模式总结一下就是:

核心思想:内存数据库、处理器与存储共享内存、异步持久化

优势:性能高、扩展性好

劣势:贵、复杂、响应变化能力差、数据一致性差(这些劣势排除了实际中95%以上的使用场景,所以简单了解即可)

更完整的分类方式

咱们实际常使用的架构模式不止这五种。《金字塔原理》里提出,当大脑要处理的项目超过4个或5个时就要对它进行归类分组。今天咱们尝试将架构视角从整体到部分来归类,分成:宏观架构、局部架构、应用结构架构和用户界面架构。

宏观架构

宏观架构一般应用于大规模企业的整体技术架构战略,一般建立在服务化基础之上。常见的架构模式有:中台架构、去中台化架构、Serverless 架构和微服务架构。

局部架构

局部架构一般应用于一个业务线或者一个团队,一般建立在宏观架构之下,有可能直接按照宏观架构来设计,或者遵从以下架构模式:单体架构、分层架构、事件驱动架构、面向空间架构、C/S架构、B/S架构、主从架构、面向服务架构和点对点架构。其他的架构风格,我在之前的文章中都介绍过,简单说一下:点对点架构。

点对点架构

点对点模式,即Peer-to-Peer模式,在这种模式中,单个组件被称为对等点。对等点可以作为客户端,从其他对等点请求服务,也可以作为服务器,为其他对等点提供服务。对等点可以充当客户端或服务器的角色,并且可以随时间动态地更改其角色。每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。

有3种比较流行的组织结构,(1)DHT结构,这种结构多用于文件共享和作为底层结构用于流媒体传输。(2)树形结构,最初的树形结构多用于P2P流媒体直播。(3)网状结构,又叫无结构,为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。

点对点 (P2P) 架构有多种用途,包括:

  • 文件共享:P2P网络通常用于文件共享,因为它们允许用户直接相互共享文件,而不需要中央服务器。

  • 即时通讯:P2P网络可用于在用户之间实现即时通讯,使他们能够进行实时通信。

  • 区块链:例如比特币是一种 P2P 加密货币,无需中央货币当局即可运行。交易在去中心化的计算机网络上进行验证和记录,而不是集中管理。


应用结构架构

应用结构架构一般应用于单个可执行程序。常见的架构模式有:微内核架构、CQRS命令查询责任隔离、事件溯源、管道过滤器架构、还有和用户界面相关的MVC、MVP、MVVM架构。

总结

这些架构的视角并不相同,所以会产生多种架构一起使用,并不冲突。另外,请特别注意:“架构一般应用于” 这几个字,实际上所谓架构模式,并没有那么模式化,更类似于架构风格,可以灵活应用。比如微内核架构,又叫插件化架构,是按照功能拆分,有一个主流程,其他功能做成插件来做插拔。这些插件可以是集成于一个可执行应用,比如Intelij的插件、谷歌浏览器的插件,也可以做成服务化插件独立部署,应用于局部架构。如果有人聊天的时候硬要给微内核架构上纲上线,说什么服务要重启的就不是微内核架构、独立部署的就不是微内核架构,完全可以怼回去:微内核是一种思想,核心是功能可插拔、可替换。怎么实现并不需要模式化的套路。

预览时标签不可点

架构师28

架构师 · 目录

#架构师

上一篇在跨系统环境中实现数据一致性:关键步骤和策略下一篇微服务架构中的拆分粒度决策

标签: #知识库 257
相关文章
最全的办公楼智能化解决方案

最全的办公楼智能化解决方案 2024-10-16 08:40

办公楼综合体智能化如何建设?有哪些系统?近几年,办公楼智能化的项目越来越多,不少项目经理都参与其它,同事办公楼综合体也是弱电系统涉及的最多的项目之一,本期我们一起来看下,最全的办公楼项目智能化设计方案。

规范标准查询、下载网站 2024-10-12 16:41

我们在工作中经常需要用到各种各样的规范标准,这里给大家介绍一些免费查询和下载规范的网站,个人亲测可用。 标准查找查新网站 工标网: http://www.csres.com/ 中国国家标准化管理委员会:http://openstd.samr.gov.cn/bzgk/gb/index 全国标准信息公共

【计算机网络】网络层协议解析 2024-10-08 11:24

网络层的两种服务 IPv4 * 分类编址 划分子网 无分类地址 IPv4地址应用 IP数据报的发送和转发过程 * 主机发送IP数据报 路由器转发IP数据报 IPv4数据报首部格式 ICMP网际控制报文协议 虚拟专用网VPN与

FFmpeg教程(超级详细版) 2024-10-08 11:24

一、参考资料 通过ffmpeg把图片转换成视频 FFmpeg命令(一)、使用filter_complex命令拼接视频 FFmpeg 视频处理入门教程给新手的 20 多个 FFmpeg 命令示例 FFmpeg命令行转码

计算机网络:物理层 —— 数据的传输方式 2024-10-08 11:24

文章目录 * 传输方式 * 串行传输 * 串行传输方式 特点 应用 并行传输 * 特点 应用 网卡的串/并转换 同步传输 * 同步时钟频率的误差问题 特点 应用<

授权码机制 V2.1 2024-10-07 10:26

大家好,我是机灵鹤。 根据读者朋友们反馈的问题和建议,对 授权码 V2.0 版本做了一些优化。 优化内容主要解决了以下几个问题: 优化了授权机制中的时间校验逻辑,避免用户通过回调本地时间来绕过授权机制的问题。 封装和简化了授权接口,开发者可以更方便地接入到自己的程序中。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.