首页 > 其他分享 >彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构

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

时间:2025-01-17 20:58:06浏览次数:3  
标签:讲清楚 架构 扩展 系统 链路 服务 日志 分布式

目录

什么是系统架构

单体架构

介绍

示例图

优点

缺点

集群架构

介绍

示意图

优点

缺点

分布式架构

示意图

优点

缺点

生态扩展

介绍

示意图

优点

缺点

扩展:分布式服务解析

纵切拆服务

全链路追踪能力

循环依赖

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


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

什么是系统架构

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

单体架构

介绍

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

示例图

优点

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

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

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

缺点

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

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

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

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

集群架构

介绍

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

示意图

优点

  • 解决大并发问题

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

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

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

缺点

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

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

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

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

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

分布式架构

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

  • 服务拆分

  • 远程调用

  • 服务治理

  • 请求路由

  • 身份认证

  • 配置管理

  • 服务保护

  • 分布式事务

  • 异步通信

  • 消息可靠性

  • 延迟消息

  • 分布式搜索

  • 倒排索引

  • 数据聚合

示意图

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

优点

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

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

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

缺点

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

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

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

生态扩展

介绍

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

示意图

优点

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

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

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

缺点

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

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

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

扩展:分布式服务解析

纵切拆服务

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

全链路追踪能力

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

循环依赖

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

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

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

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

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

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

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

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

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

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

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


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

标签:讲清楚,架构,扩展,系统,链路,服务,日志,分布式
From: https://blog.csdn.net/weixin_56861179/article/details/145196619

相关文章

  • 【Nameko库】一个用于构建分布式系统的Python库
    1.微服务介绍微服务架构是一种将应用程序拆分为多个小型服务的方法,每个服务都可以独立开发、部署和扩展。这种架构使得应用程序更加模块化、可维护和可扩展。微服务架构的核心在于服务间的通信,主要有同步通信(如RESTful和RPC)和异步通信(如消息中间件)两种方式。典型的微服务架构有......
  • Kafka分布式消息队列
    一、概述kafka是一个分布式的基于发布/定义的消息队列(MessageQueue)通信处理同步处理客户端->数据库->发送短信->响应客户端异步处理客户端->数据库->发送短信放入MQ(直接响应客户端)消息队列的优势解耦:允许独立的处理两边处理过程,遵循接口约束即可可恢复性:当某......
  • 【书籍连载】《软件测试架构实践与精准测试》 川模型组织架构分析
    各位软件领域的精英们,今天小编邀请你继续深入学习《软件测试架构实践与精准测试》。《软件测试架构实践与精准测试》是作者李龙(安畅检测首席技术专家)基于软件测试“川模型”的著作。本书结合作者首次提出的软件测试新的模型“川模型”测试架构,并与精准测试理念相结合的方式,......
  • 基于 KubeSphere v4 的 Kubernetes 生产环境部署架构设计及成本分析
    本文作者:运维有术。今天分享的主题是:如何规划设计一个高可用、可扩展的中小规模生产级K8s集群?通过本文的指导,您将掌握以下设计生产级K8s集群的必备技能:集群规划能力合理规划节点规模和资源配置设计高可用的控制平面、计算平面、存储平面架构规划网络拓扑和安全策略制......
  • DeepSeek-V3 的 MoE 架构解析:细粒度专家与高效模型扩展
    DeepSeek-V3采用的DeepSeekMoE架构,通过细粒度专家、共享专家和Top-K路由策略,实现了模型容量的高效扩展。每个MoE层包含1个共享专家和256个路由专家,每个Token选择8个路由专家,最多路由至4个节点。这种稀疏激活的机制,使得DeepSeek-V3能够在不显著增加计算成本的......
  • 海外泼天流量|浅谈全球化技术架构
    本文对海外泼天流量现状做了快速整理,旨在抛砖引玉,促进国内企业在出海过程中,交流如何构建全球化技术架构的落地经验,相信会有越来越多资深人士分享更深层次的实践。登陆小红书,搜索refugee,你就能看到一个不一样的小红书。随机点击几个,让大数据记住你,就能持续看到一个不一样的小红书......
  • 视觉语言模型——原理、模型架构、训练方法
    1.概述近年来深度学习在计算机视觉(CV)和自然语言处理(NLP)等单模态领域都取得了十分优异的性能。随着技术的发展,多模态学习的重要性和必要性已经慢慢展现。视觉语言学习作为多模态学习的重要部分,得到国内外研究人员的广泛关注。得益于Transformer框架的发展,越来越多的预......
  • 分布式系统架构7:本地缓存
    这是小卷对分布式系统架构学习的第10篇文章,在开始学习分布式缓存之前,先来学习本地缓存的理论基础,了解为什么需要用缓存1.引入缓存的影响我们在开发时,用到缓存的情况,无非就是为了减少客户端对相同资源的重复请求,降低服务器的负载压力。引入缓存后,既有好处也有坏处引入缓存负面......
  • GaussDB云原生架构
    分层原则。整体层次分为三层,分别为ApplicationLayer,ComputerLayer和StorageLayer。ApplicationLayer应用层主要是客户端各种语言的驱动,这些驱动通过通信与计算层ComputerLayer进行交互,对数据库进行操作。下面是ComputerLayer计算层,计算层负责SQL处理和事务处理,数据库的......
  • 深度学习图像算法中的网络架构:Backbone、Neck 和 Head 详解
    深度学习已经成为图像识别领域的核心技术,特别是在目标检测、图像分割等任务中,深度神经网络的应用取得了显著进展。在这些任务的网络架构中,通常可以分为三个主要部分:Backbone、Neck和Head。这些部分在整个网络中扮演着至关重要的角色,它们各自处理不同的任务,从特征提取到最......