一、单体应用架构概念

一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。
      而架构单体应用的方法论,就是单体应用架构。

二、单体架构示意图

三、单体应用架构的优缺点

1. 优点

  • 便于共享:单个归档文件包含所有功能,便于在团队之间以及不同的部署阶段之间共享。
  • 易于测试:单体应用一旦部署,所有的服务或特性就都可以使用了,这简化了测试过程,因为没有额外的依赖,每项测试都可以在部署完成后立刻开始。
  • 易于部署:只需将单个归档文件复制到单个目录下。

2. 缺点

  • 复杂性高:由于是单个归档文件,所以整个项目文件包含的模块非常多,导致模块的边界模糊、依赖关系不清晰、代码的质量参差不齐,混乱的堆在一起,使得整个项目非常复杂。以致每次修改代码,都非常小心,可能添加一个简单的功能,或者修改一个Bug都会带来隐藏的缺陷。
  • 技术债务:随着时间的推移、需求的变更和技术人员的更替,会逐渐形成应用程序的技术债务,并且越积越多。
  • 扩展能力受限:单体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。
  • 阻碍技术创新:对于单体应用来说,技术是在开发之前经过慎重评估后选定的,每个团队成员都必须使用相同的开发语言、持久化存储及消息系统。
  • 因单体应用部署在一台服务器上,很容易出现系统负载过重,内存泄漏等问题,而且出现该种问题由于1)的原因,并不好修改。

四、微服务架构概念

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。这些服务围绕业务能力构建并且可通过全自动部署机制独立部            署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

五、微服务架构示意图

六、微服务架构的优缺点

1. 优点

  • 易于开发和维护:一个微服务只会关注一个特定的业务功能,所以业务清晰、代码量较少。开发和维护单个微服务相对简单。
  • 单个微服务启动较快。
  • 局部修改容易部署:单体应用只要有修改,就得重新部署整个应用。微服务解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
  • 技术栈不受限制:在微服务架构中,可以结合项目业务及团队的特点,合理的选择技术栈。
  • 按需伸缩:可根据需求,实现细粒度的扩展。

2. 缺点

  • 运维要求高:更多的服务意味着要投入更多的运维。
  • 分布式固有的复杂性:使用微服务构建的是分布式系统。对于一个分布式系统,系统容错、网络延迟、分布式事务等都会带来巨大的问题。
  • 接口调整成本高:微服务之间通过接口进行通信。如果修改某一个微服务的API,可能所有用到这个接口的微服务都需要进行调整。

看到CSDN上这位兄弟写的不错,略微加了点实践中自己的感受。

转载地址:https://blog.csdn.net/qinaye/article/details/82840625

转载于:https://www.cnblogs.com/ITBlock/p/10056297.html

单体应用架构和微服务架构的区别相关推荐

  1. “逃离”单体,GitHub的微服务架构实践

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 本文介绍 Git ...

  2. 漫谈单体架构与微服务架构(上):单体架构

    最近微服务架构特别火爆,就跟人工智能.区块链一样,软件架构设计如果不提微服务,感觉就像是与世界先进的架构风格和开发技术脱了节似的,各方各面都无法彰显高大上的气质. 本来再打算使用一套系列文章来讨论微服 ...

  3. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  4. 系统架构的演变过程(单体应用架构、垂直应用架构、分布式SOA架构、微服务架构)

    文章目录 系统架构演变 单体应用架构 垂直应用架构 分布式SOA架构 什么是SOA 微服务架构 分布式SOA架构和微服务架构对比 系统架构演变 随着互联网的发展,网站应用的规模不断扩大,常规的应用架构 ...

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

    目录 前言: 单体架构 SOA架构 微服务架构 前言: 随着近年来云技术的发展,越来越多的用户选择使用云技术来代替传统的IT基础设施.在云技术发展的早期,业界的关注点集中在虚拟化.分布式.存储等laa ...

  6. 单体架构-->SOA架构-->微服务架构

    上诉架构图采用了分层架构,按照调用顺序,从上到下为表示层.业务层.数据访问(DAO)层.DB层.表示层负责用户体验,业务层负责业务逻辑,包括电影.订单和用户三个模块.数据访问层负责DB层的数据存取,实 ...

  7. Java架构师-微服务:微服务架构【单体部署 --改造--> 微服务架构】【分布式:分散压力;微服务:分散能力】【RESTFul+Docker+K8S、SpringCloud】

    一.微服务概述 微服务架构是团队面对互联网产品爆发式增长的最优选择,要解决的是快速迭代.高可靠和高可用等问题,把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律,每一个模块用5-9个小团队来维护, ...

  8. 从单体架构到微服务架构的拆分

    目录 一.概述 二.微服务拆分 三.微服务项目架构图 一.概述 单体架构.分布式架构和微服务架构是三种不同的软件架构模式,它们各有特点和适用场景. 单体架构(Monolithic Architectu ...

  9. nodejs微服务:单体架构与微服务架构

    单体架构 单体架构在中小企业内部用的是非常多的,就是完整独立的web服务 当业务不复杂,团队规模不大的时候,单体架构比微服务架构具有更高的生产率 1 ) 单体架构的程序部署在单台服务器 这种架构是目前 ...

最新文章

  1. 根据CPU核数合理设置线程池大小
  2. Python3爬虫之爬取某一路径的所有html文件
  3. 目标检测的“尽头”竟是语言建模?Hinton团队提出Pix2Seq:性能优于DETR
  4. 博后招募 | 西湖大学工学院蓝振忠深度学习实验室招募博士后
  5. 怎样允许远程访问mysql_如何开启MySQL远程访问权限 允许远程连接
  6. Exchange2003-2010迁移系列之九,创建DAG组
  7. [CF1107E]Vasya and Binary String【区间DP】
  8. 百度地图服务器不显示本地运行,百度地图定位成功,但地图不显示
  9. 生活随笔:师弟,加油
  10. 为什么说苏宁必买万达百货
  11. 基础练习 Sine之舞(最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。)
  12. Python的三个引号作用
  13. 【揭秘】CSDN博客上,超过百万访问量的Android牛人都是谁?
  14. Pandas熊猫框架
  15. [重装系统]戴尔DELL新BIOS设置U盘启动
  16. ffmpeg转换视频内存溢出的问题
  17. 用 zotero 管理文献和个人知识库
  18. 以色列《耶路撒冷之鸽》凄美感人别具特色
  19. android手机拍照,如何用Android手机拍摄 Android手机拍摄技巧汇总【详细介绍】
  20. HMC基金会Big Ma机器人同步代币HMC(希曼)将上线 PancakeSWAP

热门文章

  1. 浙江省计算机数据库三级报名,浙江省计算机等级考试三级数据库技术
  2. IDEA Properties 文件乱码
  3. 云服务器选ssd还是hdd_云服务器区域怎么选?
  4. java 小数精度问题
  5. python源文件后缀_Python怎样获取文件扩展名
  6. 怎么用python爬豆瓣_python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影...
  7. oracle语法_PG数据库sql语法总结,与Oracle有什么不同?
  8. python实现knn分类_KNN图像分类及Python实现
  9. node 更新_ESLint v7.0.0 发布:不再支持 Node.js v8
  10. 个人计算机预防勒索病毒,Windows10如何开启预防勒索病毒功能|电脑安全开启防御勒索软件的方法...