SpringCloud:系统架构之垂直应用架构

1.1、说明

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将传统的单体架构应用拆分成互不相干的几个小应用,这些小应用独立的部署到不同的服务器上,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。

1.2、图示1

垂直应用架构是这样设计的:将图中的整个儿大应用:用户功能、订单功能以及商品功能拆分成一个一个的小应用,而且每个的小应用都是很完整的,比如说:用户小应用从页面Controller,到用户Service、再到用户Mapper,再到数据库都是完整的一套小系统,同时订单功能、商品功能也是一样。

1.3、图示2

假设:现在的用户小应用的访问量特别大,那么我们就可以将用户小应用多复制几份,然后分别放置在不同的服务器上,如下图所示:

垂直架构 垂直应用架构_服务器

那么这样做的好处在于:

分工明确,每个小团队负责自己的小应用,各司其职。
维护方便,不会说因为修改了用户小应用而去导致整个大应用的部署。
1.4、劣势

由于对于垂直应用来说,是一整套的小系统,包括了用户界面。这个时候会发现:我们的界面可能会经常的发生变化,那么导致的问题就是:即便是单单的页面变化了,业务Service没有发生变化,也会导致整个儿的小应用的一次部署,如果这个小应用分别部署在很多台机器上,显然也是非常麻烦的。而我们的期望是:界面+业务逻辑是分离的,那这样的话,页面的改变就不会影响到我们的业务了。
随着系统的升级,随之而来的小应用也会越来越多,那么这么多的小应用不可能说是每个都完全的相互独立,小应用与小应用之间还是需要交互的。
1.5、小总结

不管怎么说,垂直应用架构要比单一架构在系统维护升级上已经先进了一步,而每个小应用之间的交互就需要之后所介绍的分布式服务架构。