目录
本文主要介绍项目架构演进过程,从简单的单体架构逐步演进到微服务架构,每种架构简要说明了优缺点。
项目架构无所谓好坏,只有适不适合当前的业务,项目架构的标准有很多,本文主要以不同UV指标(本文只说明这一种指标,实际项目架构要综合各类需求指标来判断采用何种技术架构)来说明不同的架构。
UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。
单体架构

上图中的应用服务器和数据库放到一台服务器中。

上图中的应用服务器和数据库服务器独立部署。
单体应用架构优缺点:
优点:集成方便,易于维护
缺点:服务间依赖较多,项目较大,启动时间长,互相之间会有资源争夺,无高可用。
集群架构



上面架构图中,代理服务器、应用服务采用了集群,数据读写分离,优缺点如下:
优点:可以避免应用单点故障,增加了热点数据缓存Redis,增加了数据库读写分离,提高应用和数据处理能力。
缺点:增加了维护成本
微服务架构

上图架构图中,服务做了拆分,每个服务都是集群,增加了网关,消息队列,注册中心,配置中心,熔断限流组件,监控告警等等组件,优缺点如下:
优点:每个服务独立开发部署和启动,提高数据库性能
缺点:关注的技术点多,如数据一致性问题,各类服务治理的能力,增加了维护成本