加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.com.cn/)- 运营、云管理、管理运维、云计算、大数据!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

二十条铁则送给你!

发布时间:2021-02-13 12:30:25 所属栏目:外闻 来源:互联网
导读:随着互联网的快速发展,一方面互联网应用访问量级大增,数据量大增。另一方面,应用的迭代速度也不断变快。单体应用的模式已经不适合互联网的快速发展。这样,后台分布式集群架构越来越流行。 Micro-Service 微服务并没有一个严格的定义。以下是 Martin Fowl

随着互联网的快速发展,一方面互联网应用访问量级大增,数据量大增。另一方面,应用的迭代速度也不断变快。单体应用的模式已经不适合互联网的快速发展。这样,后台分布式集群架构越来越流行。

Micro-Service

微服务并没有一个严格的定义。以下是 Martin Fowler 描述的微服务:

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境。

 

上所提的架构都是在单体架构之下。单体架构和多服务架构是从服务的部署模式、运行模式来考虑。

单体架构有如下优势:

  •  易于开发:借助于开发框架,单体应用的开发及其简单,开发人员也很少需要考虑系统、部署、网络等层次的问题。
  •  易于测试:单体应用部署在一个进程中,环境简单。只要服务启动就可以测试所有的功能。
  •  易于部署:往往只需要将应用打包成一个简单的包就可。
  •  易于水平扩展:只需要将程序包部署多个服务即可。

单体应用的劣势:

  •  维护成本增加:随着需求的增多,单体系统将越来越臃肿,维护的复杂性也将越来越大。
  •  持续交互周期长:一方面维护困难,另一方面单体应用在并行开发,并行测试上将十分困难,单体应用十分不适合快速迭代的敏捷开发。
  •  扩展性差:由于臃肿的系统,将导致系统扩展性变难。系统的升级也需要十分谨慎。
  •  对新人不友好。

分布式系统拆分:

 

架构的经典和流行,以及大量 Web 后台框架对三层架构的靠近,使得 Web 后台开发简单到一个刚刚入门的开发人员就可以进行 web 开发。也正因为此,使得大部分 web 开发人员的思维受限于此,从而成为人人调侃的 CRUD-Boy。随着 MIS 系统时代的渐远,三层架构也开始在一些领域无法成为“银弹“。

除去经典的三层架构。在领域驱动设计中,Eric Evans 设计了一种经典的四层架构,其在用户界面层与业务逻辑层之间引入了新的一层,即应用层(Application Layer)。其余几层也相应的有所调整。

 

del-View-Controller,MVC 架构是面向对象编程的一大进步。服务将逻辑划分为三个不同的组建:Model——模型,即数据,通常存储在数据库中,在内存中进行逻辑操作。View——用户可见的组建,用于用户交互和数据展示,如 Web GUI。Controller——逻辑操作,连接 Model 和 View 的组件,操作 Model 逻辑和 View 交互展示逻辑。

MVC 模式在客户端和 H5 前端都比较流行。也一直是 Web 后端流行的架构模式,在 Java Web 领域催生的 Struts、Spring MVC 等 Web 后台框架,让曾经复杂的 Web 开发变成一种异常简单的开发。

随着前后端渐渐分离,之前的后台 MVC 已经将 View 完全交于前端,前后端通过相关协议通信,完成 View 数据的传输。

Layered

分层架构是运用最为广泛的架构模式,几乎每个软件系统都需要通过层(Layer)来隔离不同的关注点(Concern Point),以此应对不同需求的变化,使得这种变化可以独立进行。

单一职责原则,是系统设计开发重要的原则。分层架构就时时遵循单一职责原则。不同的层次相互隔离,承担不同的职责。

说起分层架构,最让人熟知的就是经典的三层架构。经典三层架构自顶向下由用户界面层(User Interface Layer)、业务逻辑层(Business Logic Layer)与数据访问层(Data Access Layer)组成。三层架构是简单 Client-Server 架构的升级。


(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读