架构的发展历程总结
前言
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
大概的发展历程大致可以用下面的这张图来概括:
一、单体架构
所有的资源都在一个服务上,mvc架构
优点:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
缺点:1、某些模块的访问量增大影响整个项目性能。2、新增模块需要重新部署项目,可能导致其他模块也无法使用
二、垂直架构
不同的模块在不同的服务上,每个服务上都有三层架构
优点:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。在某种程度上解决了单体架构的问题。
缺点:通用的服务无法共享,相同服务每个war都实现一遍。造成资源的浪费
三、分布式架构
将核心业务抽取出来,作为独立的服务(业务层放在了不同的服务上,通过RPC实现数据共享)
优点:实现了数据共享,解决了垂直架构的问题
缺点:服务多起来,存在依赖,服务监控和维护的问题
例如:突然有一台服务出现问题,将可能导致与之相关联的一系列操作都无法进行。增加了一个服务也要修改代码。
下订单需要结合商品和会员,但是会员的一台服务出现了问题,负载了该服务的操作都将出错。
四、SOA架构(流动计算架构Service Oriented Architecture)
相对于分布式架构多了一个注册中心
优点:增加一个调度中心,将服务的地址注册到服务中心,基于访问压力实时管理集群容量,提高集群利用率。解决了分布式架构的问题。