单体应用、SOA架构、微服务架构的对比

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 单体应用、SOA架构、微服务架构的对比

目录

前言:

单体架构

SOA架构

微服务架构


前言:

随着近年来云技术的发展,越来越多的用户选择使用云技术来代替传统的IT基础设施。在云技术发展的早期,业界的关注点集中在虚拟化、分布式、存储等laas方面的技术。但随着“云原生”概念的提出,大家的注意力开始转移到如何构建更加合适环境运行的应用上来。

“什么样的架构才是适合在云环境中运行”是一个非常大的问题,在此先不展开讨论,而是到CNCF对云原生的定义中寻找答案:

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网络、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统,结合可靠的自动化手段,云原生技术使工程师能够轻松地系统作出频繁和可预测的重大变更。

从上文的定义中可以发现“微服务”在云原生技术中占有非常重要的位置。在Jakarta.ee 2019年的调研报告中也印证了这一点,超过40%公司选择采用微服务架构来构件云上系统

在Java语言下,Pivoal强大的标准制定能力与影响力,Spring Cloud拥有一个强大的国际化社区,阿里巴巴作为整个社区里面的重要成员,也贡献出Spring Cloud Alibaba这套优秀的实现,这也是目前整个Spring Cloud体系下最完善并且在持续更新的实现方案。

需要掌握的知识点:

    1. 微服务的发展历程
    2. 微服务的基本形式
    3. Spring、Spring Boot、Spring Cloud的职责与关系
    4. Spring Cloud Alibaba的功能与定位
    5. Java工程脚手架的使用方法
    6. 沙箱环境的使用方法

    概念:

    通常业界所说的,没有最好的架构,只有最合适的架构。微服务架构也是随着信息产业的发展而出现的最有普遍适用性的一套架构模式。通常来说,架构的发展历程分为以下几种:单体架构、SOA面向服务架构、微服务架构

    单体架构

    很久以前,计算机发展的早期,创建的绝大部分的应用都属于单体应用,通常一个应用分为数据库连接、业务逻辑处理、展示逻辑等放到了一起,甚至于处理用户请求的地方也直接连接数据库。

    后来,学习使用了MVC的架构,由此开启了应用的拆分之旅,多层架构的本质,是按照技术职责将应用做水平拆分,每一层解决的技术问题相对集中,层与层之间做单向依赖。可以更好的管理代码,大大提升了后期的维护效率,但是此时还是单体应用,部署也是按照一个整体运行。

    优点有以下几点:开发简单、开发迅速、部署简单但是随着业务的越来越多,导致的应用的规模越来越大,逻辑越来越复杂,导致的这个应用也越来越难以维护。于是出现了SOA。面向服务的架构

    SOA架构

    SOA是Service-Oriented Architecture的简写,面向服务的架构,从名称来看是服务是SOA架构中非常重要的概念。SOA的核心思想是将系统的功能分为一系列的服务。

    面向服务的架构SOA是一个组件模型,将应用的不同功能单元(称服务)进行拆分,并通过这些服务之间定义好的接口和协议联系起来。接口是采用中立的方式定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以统一的方式进行交互

    与单体架构不同的是SOA是粗粒度的拆分,具体的标准参考康威定理,应用从单体应用做了垂直拆分之后,就会变成一些相对独立的应用。此时,应用之间的依赖、调用等相关问题。

    相关协议的介绍:

      1. xml一种标记语言,用于以文档格式描述消息中的数据
      2. SOAP(Simple Object Access Protocal),在计算机网络上交换基于xml的消息协议,通常是HTTP
      3. WSDL(Web Services Description Language ,Web服务描述语言)基于xml的描述语言,用于描述与服务交互所需的服务的公共接口,协议绑定,消息格式
      4. UDDI(Universal Description ,Discovery .and Integration,是统一描述、发现与集成)基于xml的注册协议,用于发布WSDL并允许第三方发现这些服务
      5. ESB(Enterprise Service Bus,企业服务总线)--支持异构环境中的服务,消息以及基于事件的交互,并且具有服务级别和管理性

      image.gif编辑

      但是存在以下的缺点:高门槛,需要不同的协议以及厂家不同参与的,很多服务可能导致通信的协议无法进行统一;不适合云环境,不同的协议导致的上线以及集成都不一致导致的部署通信的问题;中心化,虽然实现了水平的扩展,但是ESB却成了系统的中心

      微服务架构

      image.gif编辑

      微服务具有以下几种特点:

        1. 一套小服务
        2. 独立进程
        3. 轻量级通信协议
        4. 可独立部署
        5. 多语言不同存储技术

        微服务可以说是一个庞大且复杂的概念集合,它既是一种架构模式,也是实现这种架构模式所使用的技术方案集合

        需要解决的问题:

          1. 分布式的使用难点:原本在单体应用中,很多简单的问题都会在分布式环境下呗几何级的放大,例如分布式事务,分布式锁、远程调用。
          2. 协调代价:一个项目有几十个应用,这些应用又是不同的团队开发的,导致协调这些应用是一个很难的事情
          3. 服务拆分需要很强的设计能力,如果拆分不合理会导致服务不能很好的实现高内聚低耦合的要求
          相关文章
          |
          4月前
          |
          人工智能 自然语言处理 开发工具
          统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
          本文介绍统一多模态 Transformer(UMT)在跨模态表示学习中的应用与优化,涵盖模型架构、实现细节与实验效果,探讨其在图文检索、图像生成等任务中的卓越性能。
          统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
          |
          3月前
          |
          监控 Java API
          Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
          Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
          637 3
          |
          1月前
          |
          缓存 Cloud Native 中间件
          《聊聊分布式》从单体到分布式:电商系统架构演进之路
          本文系统阐述了电商平台从单体到分布式架构的演进历程,剖析了单体架构的局限性与分布式架构的优势,结合淘宝、京东等真实案例,深入探讨了服务拆分、数据库分片、中间件体系等关键技术实践,并总结了渐进式迁移策略与核心经验,为大型应用架构升级提供了全面参考。
          |
          1月前
          |
          Cloud Native Serverless API
          微服务架构实战指南:从单体应用到云原生的蜕变之路
          🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
          微服务架构实战指南:从单体应用到云原生的蜕变之路
          |
          1月前
          |
          人工智能 JavaScript 前端开发
          GenSX (不一样的AI应用框架)架构学习指南
          GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
          175 6
          |
          2月前
          |
          人工智能 Cloud Native 中间件
          划重点|云栖大会「AI 原生应用架构论坛」看点梳理
          本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
          |
          2月前
          |
          机器学习/深度学习 人工智能 vr&ar
          H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
          H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
          363 0
          |
          1月前
          |
          机器学习/深度学习 自然语言处理 算法
          48_动态架构模型:NAS在LLM中的应用
          大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
          |
          3月前
          |
          Web App开发 Linux 虚拟化
          Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
          Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
          221 0
          Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件

          热门文章

          最新文章