架构的发展历程总结

  • 前言
  • 一、单体架构
  • 所有的资源都在一个服务上,mvc架构
  • 二、垂直架构
  • 不同的模块在不同的服务上,每个服务上都有三层架构
  • 三、分布式架构
  • 将核心业务抽取出来,作为独立的服务(业务层放在了不同的服务上,通过RPC实现数据共享)
  • 四、SOA架构(流动计算架构Service Oriented Architecture)
  • 相对于分布式架构多了一个注册中心



前言

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

大概的发展历程大致可以用下面的这张图来概括:

架构即未来读后感 架构发展_java


一、单体架构

所有的资源都在一个服务上,mvc架构

优点:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
缺点:1、某些模块的访问量增大影响整个项目性能。2、新增模块需要重新部署项目,可能导致其他模块也无法使用

二、垂直架构

不同的模块在不同的服务上,每个服务上都有三层架构

优点:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。在某种程度上解决了单体架构的问题。
缺点:通用的服务无法共享,相同服务每个war都实现一遍。造成资源的浪费

三、分布式架构

将核心业务抽取出来,作为独立的服务(业务层放在了不同的服务上,通过RPC实现数据共享)

优点:实现了数据共享,解决了垂直架构的问题
缺点:服务多起来,存在依赖,服务监控和维护的问题

例如:突然有一台服务出现问题,将可能导致与之相关联的一系列操作都无法进行。增加了一个服务也要修改代码。
下订单需要结合商品和会员,但是会员的一台服务出现了问题,负载了该服务的操作都将出错。

四、SOA架构(流动计算架构Service Oriented Architecture)

相对于分布式架构多了一个注册中心

优点:增加一个调度中心,将服务的地址注册到服务中心,基于访问压力实时管理集群容量,提高集群利用率。解决了分布式架构的问题。