项目架构演进

目录

单体架构

集群架构

微服务架构


本文主要介绍项目架构演进过程,从简单的单体架构逐步演进到微服务架构,每种架构简要说明了优缺点。

项目架构无所谓好坏,只有适不适合当前的业务,项目架构的标准有很多,本文主要以不同UV指标(本文只说明这一种指标,实际项目架构要综合各类需求指标来判断采用何种技术架构)来说明不同的架构。

UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。

单体架构

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

上图中的应用服务器和数据库服务器独立部署。

单体应用架构优缺点:

优点:集成方便,易于维护

缺点:服务间依赖较多,项目较大,启动时间长,互相之间会有资源争夺,无高可用。

集群架构

上面架构图中,代理服务器、应用服务采用了集群,数据读写分离,优缺点如下:

优点:可以避免应用单点故障,增加了热点数据缓存Redis,增加了数据库读写分离,提高应用和数据处理能力。

缺点:增加了维护成本

微服务架构

上图架构图中,服务做了拆分,每个服务都是集群,增加了网关,消息队列,注册中心,配置中心,熔断限流组件,监控告警等等组件,优缺点如下:

优点:每个服务独立开发部署和启动,提高数据库性能

缺点:关注的技术点多,如数据一致性问题,各类服务治理的能力,增加了维护成本

相关推荐
JMchen1233 小时前
现代Android图像处理管道:从CameraX到OpenGL的60fps实时滤镜架构
android·图像处理·架构·kotlin·android studio·opengl·camerax
Jing_jing_X6 小时前
CPU 架构:x86、x64、ARM 到底是什么?为什么程序不能通用?
arm开发·架构·cpu
qq_177767378 小时前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
m0_740043738 小时前
【无标题】
java·spring boot·spring·spring cloud·微服务
冷崖8 小时前
消息队列-kafka(一)
分布式·kafka
小程故事多_808 小时前
深度搜索Agent架构全解析:从入门到进阶,解锁复杂问题求解密码
人工智能·架构·aigc
●VON9 小时前
React Native for OpenHarmony:项目目录结构与跨平台构建流程详解
javascript·学习·react native·react.js·架构·跨平台·von
Gary董9 小时前
高并发的微服务架构如何设计
微服务·云原生·架构
ujainu10 小时前
Flutter + OpenHarmony 实战:《圆环跳跃》——完整游戏架构与视觉优化
flutter·游戏·架构·openharmony
爬山算法11 小时前
Hibernate(74)如何在CQRS架构中使用Hibernate?
java·架构·hibernate