课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
单体架构与分布式架构都是程序员在开发软件的时候经常使用的架构开发方法,下面我们就通过案例分析来了解一下,单体架构与分布式架构之间的区别。
1、单体架构(Monolithic)
单体应用时代:应用程序无论如何分层,都是一个解决方案,或者说都是一个项目,这里的“解决方案”和“项目”不是我们使用的VisualStudio里面的概念,终的程序代码都会在一个进程里运行。
优点:开发简单,集中管理,没有分布式的损耗,都是系统进程内的通信。
缺点:不好维护,升级困难,耦合严重,无法应付高并发和大数据场景,无法快捷迭代。
(1)、只能采用同一种技术,很难用不同的语言或者相同语言不同版本开发不同模块。
(2)、系统耦合性太强,其中一个模块有问题,这个系统就会瘫痪,一个模块升级,整个系统就得停机维护。
(3)、要上线,必须一起上线,互相等待,无法快速相应市场需求。
(4)、集群负担大,如果想要集群,只能对整个系统进行集群,即使一个模块有压力。
2、分布式服务
随着业务系统的越来越庞大,软件系统设计起来越来越复杂。为了避免过度复杂的业务需求,开始对业务系统的进行垂直拆分,形成多个独立的业务系统,如果多个系统之间要通信,可以通过跨进程的技术完成通讯。但是垂直拆分也导致了大量重复代码、重复模块的产生,比如:用户模块、日志模块、支付模块、认证授权模块等,这样分散的代码也给系统的维护和升级带来了困难。我们对业务重新划分,把独立的模块接口化、服务化,提高重用,这个时候,我们就开始进入了分布式服务的时代。
优点:
1、独立进程部署,独立进程运行,独立演化。服务之间可以做到高内聚,低耦合。
2、独立开发和维护,业务解耦,无论是业务系统还是分布式服务都独立演化。
3、分布式管理
4、隔离性增强
5、由一系列服务组装成系统,不用重复建设,模块、代码可以复用。
缺点:
1、数据一致性(多服务完成一个任务)和系统的可用性(集群)成为问题
2、数据库也进行了拆分。
3、维护、设计、架构成本增加,调试、纠错更难。
4、网络传输分布式损耗成本
5、不适合高并发和大数据的环境。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。