系统架构的演变
随着互联网的发展,网站应用的规模也在不断的扩大,从而导致系统架构也在不断的进行变化。
单体应用架构
一般的网站应用流量较小,只需一个应用就能将所有功能代码部署在一起,这样可以减少开发、部署和维护的成本。
缺点
- 全部功能都集成在一个工程上,不宜于功能多且杂的项目
- 项目各模块之间紧密耦合,单点容错率低
- 无法针对不同模块进行水平扩展
垂直应用架构
将原来的一个应用拆成互不相干的几个应用,以提升效率。
缺点
- 系统之间相互独立,无法进行相互调用,可能存在重复的功能
分布式架构
把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑,表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现的
缺点
- 系统之间的耦合度变高,调用关系错综复杂
SOA架构(Service Oriented Architecture)
调度中心对集群来进行管理,使用治理中心解决服务间调用关系的自动调节
缺点
- 服务间会有依赖关系,一旦某个环节出错影响较大
- 服务关系复杂,运维、测试、部署较困难
微服务架构
微服务架构拆分的粒度会更加精细,不同的服务做不同的功能,从而提高效率,且每个服务之间互不影响。
缺点
- 分布式系统开发的技术成本变高(容错、分布式事务等)
- 复杂性更高,各个微服务进行分布式独立部署,当进行模块调用的时候,分布式将会更麻烦