系统架构体系

一、单体架构

1.浏览器,DNS服务器(解析域名,转换为IP地址),一台计算机就相当于一个服务器(用端口号进行区分Tomcat(web服务),数据库服务)

2.本次架构解决问题:实现浏览器和服务器中web服务的连接,实现web服务和数据库服务的连接

3.发展:当用户访问量增大,数据库和web服务器互相竞争资源

二、第一次演进,tomcat/lis和数据库分开部署

第一次演进:

1.演进思考解决:将web服务器和数据库分开到两个服务器。

2.本次架构要解决的问题:实现web服务器和数据库服务器的连接

3.发展:随着用户增大,访问量增大,刚开始先是竞争,之后那个先遇到瓶颈?

首先是数据库进入瓶颈,因为在web服务器中60%都是进行数据库的操作,并发读写数据库成为瓶颈,IO操作等等。

三、第二次演进:引进redis

第二次演进过程

1.演进思考:并发读写读写数据库会进行一个读硬盘的操作,这个过程是比较慢的,那么我们能不能去读内存呢?

本次架构需要解决的问题我们把一些从数据库读到的数据中一部分(用java代码或者shep代码写一个集合-字典集合)保存到web服务器本地缓存中,也可以使用分布式缓存。

2.本次架构中出现的问题:如果使用分布式缓存(redis),可能会面临,缓存一致的问题,数据库要改,缓存也要改,还有一些缓存穿透,缓存雪崩,热点数据失效的问题

3.发展:在随着用户量的增大,压力落在了web服务器中

四、第三次演进:引进Nginx(正向地阿里,反向代理,负载均衡)

1.演进思考:能不能部署多个web服务器呢?部署之后,每个web服务器都有各自的IP地址和的端口号,怎么分配呢?

我们可以加一个Nginx服务器进行管理

2.本次架构出现问题:Nginx代理服务器:正向代理,反向代理

正向代理:代理客户端,客户端不能够访问服务器,给客户端的计算机上配置一个代理软件,然后代理软件去访问代理服务器,代理服务器去访问A服务器,并将数据逐步返回

反向代理:代理服务器,一般在开发中使用的就是反向代理。浏览器访问一个网站(这个网站中具有多个web服务器),浏览器不能直接访问,那么浏览器和网站之间就需要一个反向代理,将多个服务器中ip地址配置到代理服务器中

3.发展:随着发展,数据库又到了瓶颈

反向代理

五、第四次演进,数据库的读写分离

1.演进思考:数据库的读写分离,

2.本次架构需要解决问题:主主机制,keeplive

3.发展:随着数据量增大,业务库变多

相关推荐
Sam_Deep_Thinking14 小时前
结算分摊的策略模式:不同营销活动的扣点计算方案
java·设计模式·架构·系统架构
Alluxio15 小时前
造父智能(哈啰robotaxi)在阿里云环境下构建极致透明的训练加速层
人工智能·机器学习·缓存·系统架构·自动驾驶·模型训练
SL-staff16 小时前
企业级私有化AI知识库完整搭建指南:从RAG架构到Llama 3落地实践
人工智能·系统架构·私有化部署·rag·ai知识库·llama3·jvs-ai
故渊at17 小时前
第一板块:Android 系统基石与运行原理 | 第一篇:Android 系统架构分层与 AOSP 规范
android·系统架构·android系统·aosp
名不经传的养虾人17 小时前
从0到1:企业级AI项目迭代日记 Vol.41|多租户不是一个功能,是一次手术
服务器·数据库·系统架构·ai编程·ai工作流·企业ai
@insist12317 小时前
系统架构设计师-软件容错架构设计:高可靠系统构建指南
架构·系统架构·软考·系统架构设计师·软件水平考试
@insist12317 小时前
系统架构设计师-信息安全核心技术加解密、PKI、访问控制
系统架构·软考·系统架构设计师·软件水平考试
兴通物联科技17 小时前
CRPT 俄罗斯诚信标签数据采集系统架构与 CSV 合规文件生成原理
大数据·图像处理·人工智能·计算机视觉·系统架构
Cosolar19 小时前
AutoGen:微软开源的多Agent对话框架详解
人工智能·系统架构·大模型·agent·rag
tigershang2 天前
华为“韬定律”:从“缩小尺寸”到“压缩时间”——后摩尔时代的规则重塑
单片机·华为·系统架构