精华内容
下载资源
问答
  • 什么是单体应用单体应用的优缺点? 什么是单体应用? 所谓的单体应用就是指一个war包包含了项目的所有功能。 单体应用的优点 不管是什么样的架构模式都会有其优点所在,单体应用的优点如下所示: 容易部署:这...

    什么是单体应用?单体应用的优缺点?

    什么是单体应用?

    • 所谓的单体应用就是指一个war包包含了项目的所有功能。

    单体应用的优点

    • 不管是什么样的架构模式都会有其优点所在,单体应用的优点如下所示:
      1. 容易部署:这个不容置疑,整个项目就一个war包,部署特别方便。
      2. 容易运行/测试:这个也上面也类似,我们在测试阶段只需要启动一个war包即可。
        但是相比优点缺点反而更加明显,下面讲述一下单体应用的缺点。

    单体应用的缺点

    1. 复杂性高:随着业务的不断迭代,项目的代码量会急剧的增多,项目模块也会随着而增加,模块与模块之间的关系就会变成的很复杂,整个项目就会变成的非常复杂,在新增和修改代码的时候都会做很多的测试,很容易会由于一处的变动影响之前业务的功能。
    2. 部署评率低:随便代码的增多,首先部署会越来越消耗时间,还有我们在修复一个很小很小的bug的时候整个项目都要重新部署,所以我们会集中一个时间点部署多个需求。
    3. 可靠性差:这个很容易理解,假如某个影响出现了死循环,导致内存溢出,会影响整个项目挂掉。
    4. 扩展性差:我们在新增业务的时候,代码层面会考虑在不影响现有的业务基础上编写代码,提高了代码的复杂性。
    展开全文
  • 电力系统的开发规范 1.统一应用开发平台整体介绍.pptx 2.统一应用开发平台单体应用开发框架介绍.pptx 3.统一应用开发平台单体应用示例.pptx
  • 一个单体应用程序,通俗来说就是应用程序的全部功能被一起打包作为单个单元或应用程序。这个单元可以是JAR、WAR、EAR,或其他一些归档格式,但其全部集成在一个单一的单元。例如在线购物网站通常会包括客户、产品、...
  • 单体应用架构存在的问题 一个归档包(例如war格式)包含所有功能的应用程序,通常称为单体应用。而架构单体应用的方法论,就是单体应用架构。 以一个电影售票系统为例,架构如图所示。 该应用尽管已经进行了模块化,...

    单体应用架构存在的问题

    一个归档包(例如war格式)包含所有功能的应用程序,通常称为单体应用。而架构单体应用的方法论,就是单体应用架构。

    以一个电影售票系统为例,架构如图所示。
    在这里插入图片描述

    该应用尽管已经进行了模块化,但由于UI和若干务模块最终都被打包在一个war包中,该war包包含了整个系统所有的业务功能,这样的应用系统称为单体应用。

    相信很多项目都是从单体应用开始的。单体应用比较容易部署、测试,在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加,越来越多的人加人开发团队,代码库也在飞速地膨胀。慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。下面列举了单体应用存在的一些问题。

    • 复杂性高:以一个百万行级别的单体应用为例,整个项目包含的模块非常多、模块的边界模糊、依赖关系不清晰、代码质量参差不齐、混乱地堆砌在一起…整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个Bug都会带来隐含的缺陷。
    • 技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。“不坏不修( Not broken, don not fix)",这在软件开发中非常常见,在单体应用中这种思想更甚。已使用的系统设计或代码难以被修改,因为应用程序中的其他模块可能会以意料之外的方式使用它。
    • 部署频宰低:随着代码的增多,构建和部署的时间也会增加。而在单体应用中:每次功能的变更或缺陷的修复都会导致需要重新部署整个应用。全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低。而部署频率低又导致两次发布之间会有大量的功能变更和缺陷修复,出错概率比较高。
    • 可靠性差:某个应用Bug,例如死循环、OOM等,可能会导致整个应用的崩溃。
    • 扩展能力受限:单体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。例如,应用中有的模块是计算密集型的,它需要强劲的CPU;有的模块则是IO密集型的,需要更大的内存。由于这些模块部署在一起, 不得不在硬件的选择上做出妥协。
    • 阻碍技术创新:单体应用生往使用统一的技术平台或方案解决所有的问题,团队中的每个成员都必须使用相同的开发语言和框架,要想引人新框架或新技术平台会非常困难。例如,一个使用 Struts 2构建的、有100 万行代码的单体应用,如果想要换用Spring MVC,毫无疑问切换的成本是非常高的。

    综上,随着业务需求的发展,功能的不断增加,单体架构很难满足互联网时代业务快速变化的需要。

    展开全文
  • 单体应用与微服务

    2021-03-13 10:13:54
    它将单体应用分解为一组服务。虽然功能总量不变,但应用程序已被分解为可管理的模块或服务。这些服务定义了明确的RPC或消息驱动的API边界。微服务架构强化了应用模块化的水平,而这通过单体代码库很难实现。因此,...

    单体式应用
    比较适合于小项目,优点是:
       开发简单直接,集中式管理
       基本不会重复开发
       功能都在本地,没有分布式的管理开销和调用开销
    微服务
       将应用分解为小的、互相连接的微服务
       优点:   它解决了复杂性问题。它将单体应用分解为一组服务。虽然功能总量不变,但应用程序已被分解为可管理的模块或服务。这些服务定义了明确的RPC或消息驱动的API边界。微服务架构强化了应用模块化的水平,而这通过单体代码库很难实现。因此,微服务开发的速度要快很多,更容易理解和维护。
       其次,这种体系结构使得每个服务都可以由专注于此服务的团队独立开发。只要符合服务API契约,开发人员可以自由选择开发技术。这就意味着开发人员可以采用新技术编写或重构服务,由于服务相对较小,所以这并不会对整体应用造成太大影响。
       第三,微服务架构可以使每个微服务独立部署。开发人员无需协调对服务升级或更改的部署。这些更改可以在测试通过后立即部署。所以微服务架构也使得CI/CD成为可能。
       最后,微服务架构使得每个服务都可独立扩展。我们只需定义满足服务部署要求的配置、容量、实例数量等约束条件即可。

    促进敏捷开发和持续集成部署
    放弃传统的强一致性,而转而追求最终一致性

    对业务有深入的认识,对系统设计的领域模型、用户行为有足够的理解,领域模型上合理的拆分规划,减少同步远程调用,走消息的异步交互,适当的数据冗余,保证每个被拆分后的微服务之间可以获得更低耦合度
    API Gateway,服务间调用,服务发现,服务容错,服务部署,数据调用

    接口提供方的限流策略(保护自己不被别人搞死),接口调用方的降级策略(保护业务更高的可用性),接口调用方的熔断策略(保护自己不被别人拖死)

    引用:https://didispace.blog.csdn.net/article/details/114687154?spm=1000.2115.3001.4373

     

    展开全文
  • 单体应用优缺点分析

    2020-07-06 21:59:39
    很多时候我们在面试时,面试官一般会提到你现在使用的是微服务架构,那你知道单体应用有什么优点吗?为什么要从单体应用转成微服务?如题,我们先来分析单体应用的优缺点,后续文章会陆续介绍微服务和SOA架构等。 ...

    单体应用优缺点分析

    优点分析

    单体应用优点描述:公司规模较小,开发团队人数较少、产品上线周期短、产品在快速迭代期,核心功能尚未稳定时;或者用户规模和用户群体较少时,单体应用比较合适上述情况。

    优点:

    • 开发效率高
    • 易于部署
    • 易于测试

    缺点分析

    单体应用缺点描述:公司规模逐步扩大,随着公司业务的用户上升,产品功能模块陆续上升,开发团队人数从几人到几十人甚至上百人;出现这种情况单体应用的优势逐步下降,有些优势反而成为劣势。

    缺点:

    • 部署频率高,由于单体应用划分了多个模块由不同的团队小组负责,各团队为了发布新功能或者修改BUG,同一天内可能出现几个模块同时发布,发布时间点各自不一,造成频繁部署,用户体验差。
    • 可靠性差,某一个模块如果出现致命BUG,容易造成整个应用宕机。
    • 复杂度高,随着业务的不断迭代,项目的代码量会急剧的增多,项目模块也会随着而增加,模块与模块之间的关系就会变成的很复杂,整个项目就会变成的非常复杂,在新增和修改代码的时候都会做很多的测试,很容易会由于一处的变动影响之前业务的功能
    • 技术债务:“不坏不修(Not broken,don’t fix)”,这在软件开发中非常常见,单体应用尤其如此。系统设计或写好的代码难以修改,因为应用程序的其它部分可能会以意料之外的方式使用它。随着时间推移、人员更迭,这必然会增加应用程序的技术债务
    • 可伸缩性差,系统的扩容只能只对这个应用进行扩容,不能做到对某个功能点进行扩容
    • 受技术栈限制,对于单体应用,技术是在开发之前经过慎重评估后选定的,每个团队成员都必须使用相同的开发语言、持久化存储及消息系统,而且要使用类似的工具,无法根据具体的场景做出其它选择
    展开全文
  • 单体应用对比微服务

    千次阅读 2017-08-18 21:47:37
    说起微服务,首先要对比的是传统的单体应用单体应用是最早的应用形态,不需要太关注整体性能,项目规模中小型时,开发和部署都挺方便。简单谈谈他的优缺点。 单体应用优点: 方便调试,代码都在一起; 没有分布式...
  • 文章目录一、项目架构——单体应用1、单体应用2、单体应用(monolith application)3、单体应用有如下优点4、 单体应用的一些不足二、 项目架构-微服务1、 微服务2、 微服务的样子3、Spring官网 一、项目架构——...
  • 电力系统的开发规范 1.统一应用开发平台整体介绍.pptx 2.统一应用开发平台单体应用开发框架介绍.pptx
  • 单体应用架构 1、一个应用中包含了应用程序所有的功能(比如:页面、代码、配置等)把应用程序打包成war包、jar包部署到Tomcat中,通常称之为单体架构; 2、优点: (1) 易于开发、测试、部署;单个应用即包含所有功能...
  • 单体应用和微服务对比

    千次阅读 2019-03-27 09:26:24
    单体应用适合场景: 1 单体应用架构图: 2、微服务架构图 微服务,服务调用基本组件: 服务描述,注册中心,服务框架,服务追踪,服务治理 3 、 单体应用与微服务架构优缺点 单体应用有如下优点: 为人所熟知:...
  • Java单体应用本阶段课程将学习如何进行Java单体Web应用开发,经过本轮学习您将掌握:Java开发工具的使用:IntelliJ IDEA、Maven常见架构模式的使用:分层架构、MVC架构常用工具及框架的使用:Bootstrap、Spring、...
  • 单体应用 单体应用简单讲就是把一个系统所涉及的各个组件都打包成一个一体化结构并进行部署和运行。在Java EE领域,一体化结构很多时候体现为一个WAR包,而部署和运行的环境就是以Tomcat、weblogic为代表的各种应用...
  • 单体应用和微服务的区别

    千次阅读 2019-04-25 08:31:15
    一、单体应用架构 (一)、单体应用架构概念 一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。 而架构单体应用的方法论,就是单体应用架构。 (二)、单体架构示意图 ...
  • 单体应用 微服务
  • 单体应用与微服务单体架构单体架构优点单体架构缺点单体架构场景微服务微服务特性微服务优点微服务缺点微服务应用场景不适用的场景微服务全景架构图 单体架构 单体架构就是一个归档包(war|jar)包含所有功能的应用...
  • 单体应用 单体应用整个项目代码都在同一个应用工程中,这种方式在早期可以有效提高开发效率,测试、部署和运维也比较方便。少量的开发人员就可以完成所有工作。然而随着业务规模、数据量的不断扩大,单体应用就会...
  • 主要介绍了spring+springmvc+mybatis 开发JAVA单体应用的相关知识,本文通过图文实例代码的形式给大家介绍的非常详细 ,需要的朋友可以参考下
  • 单体应用: 传统的JavaWeb开发中,前端使用JSP开发,JSP不是由后端开发者独立完成的,而是前端人员先完成HTML静态页面,交给后端人员,改成JSP,如果后面要修改,前后端人员要经常沟通,很麻烦。 ——因此,这种开发...
  • 单体应用&微服务对比

    2019-03-26 21:11:45
    单体应用和微服务各自适用的业务情景? 单体应用: 初创企业 业务逻辑不复杂 部署效率可接收 没有将服务能力抽出通用的需求 微服务: 业务逻辑比较复杂且耦合,导致牵一发而动全身 代码体量过大,导致部署效率...
  • 单体应用架构存在的问题

    千次阅读 2018-05-22 21:37:15
    而架构单体应用的方法论,就是单体应用架构。以一个电影售票系统为例,该系统UI和若干业务模块最终都被打包在一个war包中,该war包包含了整个系统的所有业务功能,这样的应用称为单体应用。很多项目都是从单体应用...
  • Springboot2.4.2单体应用基础框架
  • 单体应用架构和微服务架构的区别

    千次阅读 2020-02-01 15:49:39
    一、什么是单体应用架构? 以下是官方给出的解释: 一个归档包(可以是JAR、WAR、EAR或其他归档格式)包含所有功能代码的应用程序,通常称为单体应用。 而单体应用架构的方法论,就是单体应用架构。 简单粗暴理解...
  • 单体应用走向服务化 来自极客时间; 那么到底什么时候应该拆分单体应用?拆分单体应用有哪些标准可依呢? 为了解答这两个问题,今天我将通过具体案例来阐述,希望你能够学会单体应用拆分成微服务的正确姿势。...
  • 通常的单体应用结构如下
  • 写这个博客的目的是记录一下自己,从零开始对单体应用的一个改造过程。包括环境搭建、系统架构设计、系统框架的开发到最后的部署一整个系列的过程。当然,自己能力和水平有限,有不正确的地方请各位指正。 这是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,135
精华内容 3,254
关键字:

单体应用