什么是系统架构?系统架构的特点分析!

开课吧小白2021-03-29 20:31

系统构架是对已确定的需求的技术构架作好规划,运用成套完整工具划的步骤下去完成任务抽象来说,计算机系统构,或称算机体系结构,是一个系统在其所处环境中最层次概念;它确定一台计算机硬件和软件之间衔接具体地说计算机体系结的是计算机系统设计的观念与架构,描述计算机做的设计原则它确定一个计算机设计的部件功能 ,部件间接口 并且计算机体系结于“负责计算机架构的中心功:计算”央处理器 内部运行动作与存储器访问

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。

系统架构

单体架构

Web应用程序发展早期大部分web工程师将所有的功能模块打包到一起并放在一个web容器运行,所有功能模块使用同一个数据库。

特点:

1所有的功能集成一个项目工程中

2、所有功能打一个war包部署到服务器

3、通过部署应用集群和数据库集群提高系统的

点:

1、项目架构简单,前期开发成本低,周期短,小型项目的首选。

2开发效率高,模块之间交互采用本方法调用

3、容易部署运维成本小,直接打包为一个完整拷贝到web容器某个目录下即可运行

4、容易测试IDE都是为开发单应用设计的、容易测试——在本地就可以启动完整系统

缺点

1、全功能集成一个工程中,对于大型项目不易开发、扩展及维护。

2、版本迭代速度逐渐慢,改一个地方就整个应用全部编译、部署、启动,开及测试周期过长

3无法按需伸缩通过集群方式来实现水平扩展,无法针对某业务需伸缩。

分布式架构

​针对单体架构的不足,为了适应大型项目的开需求许多公司将一个单体系统业务垂直拆为若干系统系统之间通过网络交互来完成户的业务处理,每个系统可分布式部署这种架构称为分布式架构。

特点:

1、按业务垂直拆分成一个一个的单体系统,此架构也称为垂直架构

2、系统与系统之间的存在数据冗余,耦合性较大,如上图中三个项目都存在客户信息。

3、系统之间接口多为实现数据步,如上图中三个项目要同步客户信息

优点

1、通过垂直拆分,每个子系统变成小型系统,功能简单,前期开发成本低,周期短。

2、每个子系统可按需伸缩

3、每个子系统可采用不同的技术

缺点

1、子系统之间存在数据冗余、功能冗余,耦合性高

2按需伸缩粒度一个子系统中的不同的业务无法实现比如订管理和户管理

SOA架构

​SOA是种面向服务的架构基于分布式架构,将不同业务功能按服务进行拆分,并通过这些服务之间定义良好接口和协议联系起来

特点1、基于SOA的架构思想复公的功能抽取为组件服务的方式向各各系统提供服务。 2、各各统与服务之间采webservice、rpc等方式进行通信 3、ESB企业服务总线作为系统与服务之间通信桥梁 优点 1、将重复功能抽取为服务,提高开发效率提高系统可重用性、可。 2、可以针对不同服务的特点按需伸缩 3、采用ESB减少系统的接口耦合。 缺点 1、系统与服务的界限模糊,会导致抽取的服务的过大系统与服务之间耦合性高 2、虽然使用了ESB但是服务的接口协议不固定种类繁利于系统维护

微服务架构

​基于SOA架构的思想满足移动互联网对大型项目及多客需求对服务进行细粒度拆分所拆分每个服务只完成某特定业务功能比如订单服务只实现订单相业务,用服务实现用户管理相业务等等服务粒度所以称为微服务架构。

点:

1、服务层按业务拆分一个一个的微服务

2、微服务的职责单

3、微服务之间采RESTfulRPC等轻量级协议传输

4、利于采前后端分离架构。

优点

1、服务拆分粒度更细有利于资源重复利用,提高开发效率。

2、可以更加精准制定每个服务的优化方案按需伸缩

3、适用于互联网时,产品迭代周期

缺点:

1、开发复杂性增加因为一个业务流程需要微服务通过网络交互来完成

2、微服务过多,服务治理本高不利于系统维护

想要更详细的了解系统架构的演变与变迁,我推荐大家来听一下这个公开课,目前限时免费,扫描下方图片二维码领取。

 

有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
高并发编程训练营