架构定义解析 | 青训营笔记

98 阅读2分钟

随着互联网的发展,互联网企业的业务也在不断的飞速发展,进而导致系统的架构也在不断的发生着变化。总体来说,系统的架构大致经历了:单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构的演变。

1. 什么是架构

架构,又称软件架构, 是有关软件整体结构与组件的抽象描述·用于指导软件系统各个方面的设计 通俗上讲,实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

架构的重要性 地基没打好,大厦容易倒·地基坚实了,大厦才能盖得高。站在巨人肩膀上,才能看得远

2. 单机系统的架构

单机系统,指的是只在一台服务器上面运行的系统。这种架构有很大的局限性,硬件性能上会存在瓶颈,这种硬件上的瓶颈是不可避免的,所以这种系统只适合对性能,并发等指标要求不高的系统。

3. 单体、垂直架构(垂直切分)

3.1 单体架构

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

3.2 垂直架构

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

4. SOA、微服务架构(水平切分)

4.1 SOA架构

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

4.2 微服务架构

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

5. 小结

架构的演进初衷:好比做蛋糕。 需求量越来越大,终归要增加人手越做越复杂,终归要分工合作

架构的演进思路:就像切蛋糕。蛋糕越来越大,一口吃不下终归要切分。

  1. 竖着切(垂直切分)
  2. 横着切(水平切分)