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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
云原生网关 MSE Higress,422元/月
简介: 单体应用、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. 服务拆分需要很强的设计能力,如果拆分不合理会导致服务不能很好的实现高内聚低耦合的要求
          相关文章
          |
          2月前
          |
          人工智能 自然语言处理 开发工具
          统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
          本文介绍统一多模态 Transformer(UMT)在跨模态表示学习中的应用与优化,涵盖模型架构、实现细节与实验效果,探讨其在图文检索、图像生成等任务中的卓越性能。
          统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
          |
          3月前
          |
          存储 编解码 Serverless
          Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
          本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
          164 0
          |
          4月前
          |
          人工智能 监控 安全
          NTP网络子钟的技术架构与行业应用解析
          在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
          |
          5月前
          |
          Web App开发 Linux 数据库
          Omnissa Horizon 8 2503 (ESB Release) - 虚拟桌面基础架构 (VDI) 和应用软件
          Omnissa Horizon 8 2503 (ESB Release) - 虚拟桌面基础架构 (VDI) 和应用软件
          322 8
          Omnissa Horizon 8 2503 (ESB Release) - 虚拟桌面基础架构 (VDI) 和应用软件
          |
          5月前
          |
          机器学习/深度学习 文字识别 监控
          安全监控系统:技术架构与应用解析
          该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
          227 3
          |
          3月前
          |
          消息中间件 存储 Kafka
          一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
          本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
          1709 7
           一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
          |
          2月前
          |
          人工智能 数据可视化 Java
          什么是低代码(Low-Code)?低代码核心架构技术解析与应用展望
          低代码开发正成为企业应对业务增长与IT人才短缺的重要解决方案。相比传统开发方式效率提升60%,预计2026年市场规模达580亿美元。它通过可视化界面与少量代码,让非专业开发者也能快速构建应用,推动企业数字化转型。随着AI技术发展,低代码与AIGC结合,正迈向智能化开发新时代。
          |
          5月前
          |
          人工智能 JavaScript 开发工具
          MCP详解:背景、架构与应用
          模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
          4503 66
          |
          4月前
          |
          机器学习/深度学习 算法 测试技术
          图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
          本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
          123 0
          图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析