焦点速递!浅谈一下单体架构的缺点是什么

2023-04-26 06:10:23 来源:脚本之家

随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构就随之产生。那么传统应用架构到底出了什么问题呢?又如何解决?接下来我们将从传统单体架构的问题开始,对为什么需要微服务架构进行详细讲解。

传统单体应用架构的问题

通常我们所使用的传统单体应用架构都是模块化的设计逻辑,程序在编写完成后会被打包并部署为一个具体的应用,而应用的格式则依赖于相应的应用语言和框架。

例如,在网上商城系统中,JavaWeb工程通常会被打成WA R包部署在Web服务器上,而普通Java工程会以JAR包的形式包含在WA R包中,如图1-1所示。


(资料图)

早期单体架构图

上图中的这种应用开发风格很常见,它易于开发和调试,并且易于部署。在用户量不多时,此种架构方式完全可以满足需求,但随着用户人数的增加,一台机器已经满足不了系统的负载,此时我们就会考虑系统的水平扩展。通常情况下,我们只需要增加服务器的数量,并将打包好的应用拷贝到不同服务器(如Tomcat),然后通过负载均衡器(如Apache、Nginx)就可以轻松实现应用的水平扩展,如图所示。

在早期,单体架构的这种扩展方式可以很好的满足使用需求,但随着时间的推移,这种方式就会产生很多问题,具体表现如下:

1.应用复杂度增加,更新、维护困难

一个简单的应用会随着时间的推移而逐渐变大。一旦应用变的庞大而又复杂,那么开发团队将会面临很多问题,其中最主要问题就是这个应用太复杂,以至于任何单个开发者都很难进行二次开发或维护。

2.易造成系统资源浪费

虽然使用负载均衡的方式可以对项目中的服务容量进行水平扩展,但由于传统单体架构的代码中只有一个包含所有功能的WA R包,所以在对服务容量扩容时,只能选择重复的部署这个WA R包来扩展服务能力,而不仅仅是扩展了所需的服务。这样导致其他不需要扩展的服务也进行了相应的扩展,但这种扩展是不需要的,因此这种方式会极大的浪费资源。

3.影响开发效率

当一个应用越大时,启动时间就会越长。开发和调试的过程中,如果有很大一部分时间都要在等待中渡过,那么必然会对开发效率有极大的影响。

4.应用可靠性低

传统单体应用架构在运行时的可靠性比较低,当所有模块都运行在一个进程中时,如果任何一个模块中出现了一个Bug,可能会导致整个进程崩溃,从而影响到整个应用。

5.不利于技术的更新

传统单体应用架构一旦选定使用某些技术,则后期的开发和扩展将在这些技术的基础上实现。如果需要更改某种技术,则可能需要将整个应用全部重新开发,这种成本是非常大的。当然,传统单体应用架构的问题还不只这些,但出现这些问题的根本原因可以说就是由于传统单体架构中一个WA R包内包含了系统的所有服务功能所导致的。随着业务变的越来越多,问题也就越来越多。

如何解决传统应用架构的问题

针对传统单体架构的问题,大部分企业通过SOA(Service-Oriented Architecture,面向服务的架构)来解决上述问题。

SOA的思路是把应用中相近的功能聚合到一起,以服务的形式提供出去,因此基于SOA架构的应用可以理解为一批服务的组合。

同样以网上商城为例,一个简单的SOA系统如图1-3所示。

SOA系统

从上图可以看出,SOA将原来的单体架构按照功能细分为不同的子系统,然后再由各个子系统依赖服务中间件(这里指企业服务总线Enterprise Service Bus,简称ESB)来调用所需服务。

使用SOA可以将系统切分成多个组件服务,这种通过多个组件服务来完成请求的方式有很多好处,具体如下:

l把项目拆分成若干个子项目,不同的团队可以负责不同的子项目,从而提高开发效率;

l把模块拆分,使用接口通信,降低了模块之间的耦合度;

l为企业的现有资源带来了更好的重用性;l能够在最新的和现有的应用之上创建应用;

l能够使客户或服务消费者免予服务实现的改变所带来的影响;

l能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。

虽然使用SOA解决了单体架构中的问题,但多数情况下,SOA中相互独立的服务仍然会部署在同一个运行环境中(类似于一个Tomcat实例下,运行了很多web应用)。和单体架构类似,随着业务功能的增多,SOA的服务会变得越来越复杂。本质上看,单体架构的问题并没有因为使用SOA而变的更好。

针对单体架构和SOA的问题,许多公司(如Amazon、eBay和NetFlix)通过采用微处理结构模式解决了系统架构中的问题。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、互相连接的微服务。随着微服务的使用,微服务架构的思想也随之产生。

到此这篇关于浅谈一下单体架构的缺点是什么的文章就介绍到这了,更多相关单体架构的缺点内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

关键词:

相关文章

热文推荐

焦点速递!浅谈一下单体架构的缺点是什么
焦点速递!浅谈一下单体架构的缺点是什么

这篇文章主要介绍了单体架构的缺点是什么,通常我们所......更多>

吞噬星空第三季大结局曝光,罗峰动用两秘法五强者,遮天确定接档_微速讯
吞噬星空第三季大结局曝光,罗峰动用两秘法五强者,遮天确定接档_微速讯

吞噬星空第三季即将迎来大结局,而之前包括我在内很多......更多>

星网锐捷(002396):4月25日北向资金减持25.49万股
星网锐捷(002396):4月25日北向资金减持25.49万股

4月25日北向资金减持25 49万股星网锐捷。近5个交易日......更多>

四个水念什么视频_四个水念什么
四个水念什么视频_四个水念什么

1、四个水念man四声水大的样子。本文到此分享完毕,希......更多>

排行推荐

阳光医疗2022年净利520.71万同比扭亏为盈 子公司博奥基因核酸检测类产品毛利率高
阳光医疗2022年净利520.71万同比扭亏为盈 子公司博奥基因核酸检测类产品毛利率高
阳光医疗2022年净利520 71万同比扭亏为盈子公司博奥... 更多>
深空探测实验室文昌基地签约落地_天天动态
深空探测实验室文昌基地签约落地_天天动态
25日,第一届深空探测(天都)国际会议在安徽合肥举行。 更多>
圆通速递(600233):4月25日北向资金增持54.3万股
圆通速递(600233):4月25日北向资金增持54.3万股
4月25日北向资金增持54 3万股圆通速递。近5个交易日... 更多>
道琼斯指数是什么时候开始的 道琼斯指数是什么-聚看点
道琼斯指数是什么时候开始的 道琼斯指数是什么-聚看点
今天来聊聊关于道琼斯指数是什么时候开始的,道琼斯指... 更多>
软通动力(301236.SZ)拟推第一期限制性股票激励计划
智通财经APP讯,软通动力(301236 SZ)发布第一期限制... 更多>
今头条!头部私募对AI的态度正显现分歧
4月上旬,知名私募大咖但斌曾发微博看空AI,一度引发... 更多>
天天微速讯:妙可蓝多:一季度净利同比降67.08%
妙可蓝多(600882)4月25日晚间披露一季报,一季度实现... 更多>
【全球播资讯】振德医疗:一季度净利同比增30.92%
振德医疗(603301)4月25日晚间披露年报,2022年实现营... 更多>
​欧晶科技:目前石英坩埚价格处于上升趋势 供应紧张_每日消息
欧晶科技(001269)在互动平台表示,据了解,目前石英坩... 更多>
通合科技:拟定增募资不超6.2亿元 用于高功率充电模块产业化建设项目等
通合科技(300491)4月25日晚间公告,公司拟向特定对象... 更多>
天天视讯!中科信息:公司研发的技术与产品与当前的通用大模型、ChatGpt不存在相关性
中科信息(300678)发布异动公告,公司研发的技术与产品... 更多>
今日热门!园城黄金:年报披露后可能会被实施退市风险警示
园城黄金(600766)4月25日晚间发布业绩预告补充公告,... 更多>
关注:看来准备收房产税了
开始不动产统一登记了,这是为收房产税作准备了!目前... 更多>
科大讯飞的两大长期核心价值,务必重新认识|全球头条
第1个是全球第一的语音识别技术。现在人工智能浪潮兴... 更多>

差点错过曙光数创!

记录00后小散财富自由之路

聚焦AI核心,液冷明天改名液热 天

河南省第十届少数民族传统体育运动

天天即时看!兰州市去年新增专利授

20省份一季度GDP出炉:14省份增速高

恒大汽车资金不足停产,拟2元出清地

德不配位什么意思_天天速递

米兰或4000万购阿森纳射手,中场核

铭普光磁(002902.SZ)一季度归母净亏