集中式架构
优点:
当网站流量很小的时候,只需要一个应用就可以把所有的功能部署在一起,这样可以减少部署节点与成本,
缺点:
代码耦合,开发维护困难
无法对不同模块进行针对性优化
无法水平拓展
单点容错率低,并发能力差
垂直应用架构
将一个大的互联网项目按照功能拆分成不同的小的模块,独立部署,独立运行,共同协作来完成某个任务。
优点:
系统实现流量分担解决了并发的问题
可以针对不同模块进行优化
方便水平拓展,负载均衡,容错率提高。
缺点
模块间相互独立,会有很多重复的开发工作,影响开发效率。
分布式服务
将核心业务抽取出来,作为独立的服务,服务间可以相互调用。
优点
将基础服务进行抽取,系统间相互调用,提高了代码的复用和开发效率。
缺点
系统间耦合度变高,调用关系错综复杂,难以维护。
流动计算框架(soa)
以前出现了什么问题
服务越来越多,需要管理每一个服务的地址。
调用关系错综复杂,难以理清依赖关系
服务状态难以管理,无法根据情况自动搜集。
soa: 面向服务的架构
关键在于注册中心负责服务治理。
注册中心可以动态的管理服务的地址,状态,类型等信息,需要调用服务时可以直接通过注册中心去调用。
缺点
拆分粒度可能会很大
微服务架构
微服务是由soa演变而来的,都有注册中心。
微服务的特点:
-
单一职责:微服务的每一个服务对应唯一的业务能力,做到单一职责
-
微:微服务的拆分粒度很小,虽小但五脏俱全。
-
面向服务:是指每一个服务都对外暴露rest分格的服务接口的API(有兴趣的可以自行搜索rest风格)
-
自治:自治是指服务器相互独立互不干扰。服务之间虽然有调用,但做到重启不影响其他服务,有利于持续集成和持续交互,并且每一个服务都是一个独立的组件,可复用,可替换。
微服务示意图: