彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构

news2025/1/19 22:55:34

目录

什么是系统架构

单体架构

介绍

示例图

优点

缺点

集群架构

介绍

示意图

优点

缺点

分布式架构

示意图

优点

缺点

生态扩展

介绍

示意图

优点

缺点

扩展:分布式服务解析

纵切拆服务

全链路追踪能力

循环依赖

全链路日志(End-to-End Logs)


阅前提醒:前后端分离架构是前后端之间的架构方式。而这里所讲的三种架构是后端部署方式。

什么是系统架构

系统架构是指软件系统的结构设计,它定义了系统的组件、组件之间的关系以及组件与环境之间的交互。系统架构是软件系统开发的基础,它影响着系统的可维护性、可扩展性、性能和安全性。

单体架构

介绍

单体架构是一种传统的软件架构模式,其中所有的功能模块都集成在一个单一的应用程序中。这种架构简单、易于部署和测试,但在扩展性和维护性方面存在局限性。随着应用规模的增长,单体架构可能导致性能瓶颈和开发效率降低。

示例图

优点

  • 简单性:开发、部署和测试过程简单直接。

  • 性能:由于所有组件都在同一个进程中运行,所以内部通信快速且高效。

  • 易于管理:系统的所有部分都集中在一个代码库中,便于管理。

缺点

  • 扩展性差:难以水平扩展,因为整个应用必须作为一个整体进行扩展。

  • 技术限制:整个应用可能被绑定到特定的技术栈,难以引入新技术。

  • 部署困难:每次更新都需要重新部署整个应用,可能导致较长的停机时间。

  • 维护成本高:随着应用规模的增长,维护成本和复杂性增加。

集群架构

介绍

集群架构是指将多个服务器或节点组合在一起,以实现高可用性和负载均衡。在集群架构中,多个节点可以协同工作,共同处理请求,从而提高系统的处理能力和可靠性。集群架构通常用于需要高并发处理和高可用性的系统。

示意图

优点

  • 解决大并发问题

  • 高可用性:通过多节点运行,提供更高的系统可用性。

  • 负载均衡:可以有效分散请求负载,提高系统处理能力。

  • 容错性:单个节点的故障不会导致整个系统的崩溃。

缺点

  • 复杂性:需要复杂的协调和管理机制来处理节点之间的通信和数据一致性。

  • 成本:需要更多的硬件资源,增加了成本。

  • 维护难度:管理和维护集群需要专业知识和技能。

  • 更新业务:牵一发动全身,就很麻烦

  • 跨语言交互:多语言团队如何解决?

分布式架构

分布式架构是一种将应用程序的不同组件分布在不同的网络节点上的架构模式。这种架构可以提高系统的可扩展性、可靠性和容错能力。分布式架构通常用于需要处理大量数据和高并发请求的系统,可分别从以下开始做起:

  • 服务拆分

  • 远程调用

  • 服务治理

  • 请求路由

  • 身份认证

  • 配置管理

  • 服务保护

  • 分布式事务

  • 异步通信

  • 消息可靠性

  • 延迟消息

  • 分布式搜索

  • 倒排索引

  • 数据聚合

示意图

单体架构 转为 微服务(分布式)架构

优点

  • 可扩展性:可以轻松地通过增加更多的节点来扩展系统。

  • 灵活性:可以独立地更新和扩展系统的各个部分。

  • 容错性:系统的某个部分失败不会影响整个系统。

缺点

  • 复杂性:增加了系统设计的复杂性,需要处理网络延迟、数据一致性等问题。

  • 运维难度:需要专业的运维知识和技能来管理和维护分布式系统。

  • 性能开销:网络通信和数据同步可能引入额外的性能开销。

生态扩展

介绍

生态扩展是指通过集成第三方服务、API和工具来扩展系统的功能和能力。这种扩展方式可以快速增加系统的功能,同时保持系统的灵活性和可维护性。生态扩展是现代软件开发中常见的一种策略,特别是在微服务架构和云原生应用中。

示意图

优点

  • 灵活性:可以快速集成第三方服务和工具,扩展系统功能。

  • 创新性:利用现有的生态系统,可以快速创新和推出新功能。

  • 成本效益:通过使用第三方服务,可以降低开发和维护成本。

缺点

  • 依赖性:过度依赖第三方服务可能影响系统的稳定性和安全性。

  • 集成难度:不同服务和工具之间的集成可能复杂且具有挑战性。

  • 数据管理:需要管理多个服务之间的数据流和数据一致性。

扩展:分布式服务解析

纵切拆服务

指的是将一个大型的、复杂的服务拆分成多个小型、独立的服务,每个服务负责特定的功能。这种拆分可以提高系统的可维护性和可扩展性。

全链路追踪能力

指的是能够追踪一个请求或事务在系统中的整个执行路径,包括所有的服务调用、数据库访问等。这种追踪能力对于故障排查、性能优化和事务管理非常重要。

循环依赖

指的是在软件系统中,两个或多个模块相互依赖,形成一个闭环。循环依赖会导致系统难以理解和维护,通常需要通过重构来解决。

全链路日志(End-to-End Logs)

指的是记录一个请求或事务在系统中的每个步骤的日志。这种日志对于监控系统状态、分析性能瓶颈和追踪事务处理流程非常有用。它可以提供以下多个方面的价值:

  • 故障排查和问题定位:全链路日志允许开发人员和运维团队跟踪整个请求或事务的执行路径。当系统中发生故障或异常时,可以使用全链路日志追踪问题的根本原因,找到导致问题的具体组件或服务,快速定位和解决问题。

  • 性能监测和调优:通过分析全链路日志,可以了解请求的执行时间、延迟和吞吐量等性能指标。这有助于发现性能瓶颈、优化关键路径和提高系统的响应速度。

  • 事务追踪:全链路日志记录了一个请求或事务在系统中的每个步骤,包括调用其他服务、访问数据库等。这对于跟踪事务的处理流程和了解每个步骤的状态非常有用。

  • 监控和警报:全链路日志可以用于设置监控和警报规则。当系统中的某些条件达到或超过阈值时,可以触发警报,通知管理员或自动化系统采取措施。

  • 安全审计:全链路日志记录了用户的操作和访问历史,可以用于安全审计和合规性监督。它有助于检测潜在的安全问题和不正常的行为。

  • 容量规划:通过全链路日志,可以分析系统的负载情况和资源使用情况,帮助规划和预测系统的容量需求。

  • 改进用户体验:全链路日志可以提供对用户行为和体验的洞察,帮助优化用户界面和用户交互,提供更好的用户体验。

  • 版本追踪:对于分布式系统的不同版本或部署,全链路日志可以用于追踪不同版本之间的行为和性能差异。


更多经常内容尽在 vx公棕号 wmcode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2279092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter 常用UI组件

文章目录 1. Toast 文本提示框oktoastbot_toast2. loading 加载窗flutter_easyloading3. 对话框gex dialog4.下拉刷新pull_to_refresh5. pop 窗custom_pop_up_menu6. pin code 密码框pinput7. 二维码qr_flutter8. swiper 滚动组件carousel_sliderflutter_swiper_view9. Badge 角…

【王树森搜索引擎技术】概要01:搜索引擎的基本概念

1. 基本名词 query:查询词SUG:搜索建议文档:搜索结果标签/筛选项 文档单列曝光 文档双列曝光 2. 曝光与点击 曝光:用户在搜索结果页上看到文档,就算曝光文档点击:在曝光后,用户点击文档&…

【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)

本文项目编号 T 141 ,文末自助获取源码 \color{red}{T141,文末自助获取源码} T141,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

【ArcGIS微课1000例】0140:总览(鹰眼)、放大镜、查看器的用法

文章目录 一、总览工具二、放大镜工具三、查看器工具ArcGIS中提供了三种局部查看的工具: 总览(鹰眼)、放大镜、查看器,如下图所示,本文讲述这三种工具的使用方法。 一、总览工具 为了便于效果查看与比对,本实验采用全球影像数据(位于配套实验数据包中的0140.rar中),加…

【TCP】rfc文档

tcp协议相关rfc有哪些 TCP(传输控制协议)是一个复杂的协议,其设计和实现涉及多个RFC文档。以下是一些与TCP协议密切相关的RFC文档列表,按照时间顺序排列,涵盖了从基础定义到高级特性和优化的各个方面: 基…

智能学习平台系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装智能学习平台系统软件来发挥其高效地信息处理的作用&#…

5 分钟复刻你的声音,一键实现 GPT-Sovits 模型部署

想象一下,只需简单几步操作,就能生成逼真的语音效果,无论是为客户服务还是为游戏角色配音,都能轻松实现。GPT-Sovits 模型,其高效的语音生成能力为实现自然、流畅的语音交互提供了强有力的技术支持。本文将详细介绍如何…

HunyuanVideo 文生视频模型实践

HunyuanVideo 文生视频模型实践 flyfish 运行 HunyuanVideo 模型使用文本生成视频的推荐配置(batch size 1): 模型分辨率(height/width/frame)峰值显存HunyuanVideo720px1280px129f60GHunyuanVideo544px960px129f45G 本项目适用于使用 N…

浅谈 JVM

JVM 内存划分 JVM 内存划分为 四个区域,分别为 程序计数器、元数据区、栈、堆 程序计数器是记录当前指令执行到哪个地址 元数据区存储存储的是当前类加载好的数据,包括常量池和类对象的信息,.java 编译之后产生 .class 文件,运…

macOS安装的Ubuntu 20 VM虚拟机扩充磁盘的便捷方式

文章目录 说明操作一 VM扩充虚拟磁盘二 ubuntu系统调整分区 说明 建议ubuntu虚拟机安装图形化界面,方便磁盘管理。如果你安装的debian12,那可能需要使用命令行的方式,本人选择放弃,操作太复杂! 操作 一 VM扩充虚拟磁…

关于机器学习的一份总结

在之前的文章中分别有详细的关于机器学习中某一学习算法的介绍,但缺少一个总体关于机器学习的总结,所以在这篇文中就是关于机器学习的一份总结。 在最近的日子中,人工智能日益火热起来,而机器学习是其中举足轻重的一部分&#xf…

idea中远程调试中配置的参数说明

Ⅰ 远程调试中配置的端口号与服务本身端口号区别 一、远程调试中配置端口号的作用 在 IDEA 中进行远程调试时配置的端口号主要用于建立开发工具(如 IDEA)和远程服务之间的调试连接。当你启动远程调试时,IDEA 会监听这个配置的端口号&#xf…

初识JVM HotSopt 的发展历程

目录 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 各大 JVM look 看一下虚拟机 HotSopt 的发展历程 总结 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 即时编译 主要是…

3. 后端验证前端Token

书接上回,后端将token返回给前端,前端存入cookie,每次前端给后端发送请求,后端是如何验证的。 若依是用过滤器来实现对请求的验证,过滤器的简单理解是每次发送请求的时候先发送给过滤器执行逻辑判断以及处理&#xff0…

系统思考—系统性抛弃过去成功的经验

“成功的经验就是最好的老师。” 这句话常听,但在快速变化的市场中,过去的成功可能正是你眼前困境的根源。曾经有效的方法,今天或许已经不适用。要突破瓶颈,企业必须做出艰难的选择——放下过去的成功模式,拥抱未来的…

【MySQL】简单解析一条SQL更新语句的执行过程

1. 更新语句执行流程概述 在 MySQL 中,一条更新语句(如 update T set cc1 where ID2)的执行涉及多个关键步骤,与查询语句类似,会经过连接器、分析器、优化器、执行器等 Server 层模块,最终到达存储引擎&…

C#与AI的共同发展

C#与人工智能(AI)的共同发展反映了编程语言随着技术进步而演变,以适应新的挑战和需要。自2000年微软推出C#以来,这门语言经历了多次迭代,不仅成为了.NET平台的主要编程语言之一,还逐渐成为构建各种类型应用程序的强大工具。随着时…

mono3d汇总

lidar坐标系 lidar坐标系可以简单归纳为标准lidar坐标系和nucense lidar坐标系&#xff0c;参考链接。这个坐标系和车辆的ego坐标系是一致的。 标准lidar坐标系 opendet3d&#xff0c;mmdetection3d和kitt都i使用了该坐标系 up z^ x front| /| /left y <------ 0kitti采…

支持向量机算法(三):非线性支持向量原理层层拆解,精读公式每一处细节

支持向量机算法&#xff08;一&#xff09;&#xff1a;像讲故事一样讲明白它的原理及实现奥秘-CSDN博客 支持向量机算法&#xff08;二&#xff09;&#xff1a;层层拆解&#xff0c;精读公式每一处细节-CSDN博客 支持向量机算法&#xff08;一&#xff09;、算法&#xff0…

LLM - 大模型 ScallingLaws 的迁移学习与混合训练(PLM) 教程(3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145212097 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…