七大分布式系统架构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一.单机架构

1.应用服务和数据库服务公用一台服务器
2.出现在互联网早期,访问量小,单机足以满足
3.以电子商城为例:
所有的在这里插入图片描述所有的服务在一台服务器,应用和数据库在单个服务器上完成业务
4.技术案例:在这里插入图片描述
5.优点:部署简单,成本低
缺点:存在严重的性能瓶颈,数据库和应用相互竞争资源。

6.适合初创公司

二.应用数据分离架构

1.简介:应用服务和数据库分开部署
在这里插入图片描述
2.出现原因:单机资源严重竞争,导致变慢!
3.架构工作原理:在这里插入图片描述
红色为访问请求,蓝色为响应,
4.优点:成本相对可控,
性能相比单机有提示,
数据库隔离,有一点的容灾能力
5.缺点:硬件成本变高
性能有瓶颈
无法应对海量并发

三. 应用服务集群架构

1.简介

引入了负载均衡,应用以集群的方式进行运作
在这里插入图片描述进行横向扩展

2出现原因

单个应用不足以应对海量的并发请求,高并发的时候站点响应慢

3工作原理

增加服务器,通过横向扩展应用服务器来承受海量并发
在这里插入图片描述

4技术案例

nginx是负载均衡器,可以抗住5万级别左右的并发,
如过并发级别高,超过了承载级别,那么就在加一层负载均衡,结构与树相似在这里插入图片描述

5优点

1.应用服务器高可用,不会出现一个服务器挂掉整个站点挂掉
2.应用服务具备一定的高性能,可支持海量请求
3.应用服务具有一定的扩展能力

6缺点

1.数据库性能成为瓶颈
2.数据库是单点,没有高可用
3.运维成本增加
4.硬件成本增加

四.读写分离/主从分离架构

1简介

将数据库读写操作分散到不同的节点上,数据库服务器搭建主从集群,一读一写,或者一主多读。

2出现原因

数据库成为瓶颈,而互联网应用一般是读多写少,数据库承载压力过大,主要是由于这些读请求造成的,那么我们可以把读写操作分开

3工作原理

在这里插入图片描述如果软件要读,则调用读的服务器,绿色为读
如果软件要写,则调用写的服务器,红色为写

4技术案例

在这里插入图片描述

5优点

数据库读性能提升
读取被其他服务器分担,写的性能间接提升
数据库有从库,数据库的可用性能提高

6缺点

热点数据频繁读取
当同步挂掉,或者同步延迟比较大时,写库和读库数据不一致
服务器成本增加

五.冷热分离架构

1简介

引入缓存,实现冷热分离,将热点数据放到缓存中快速响应

2出现原因

海量的请求导致数据库负载过高,站点响应再度变慢

3工作原理

在这里插入图片描述

通过添加一个缓存来实现热点数据的访问效率,相当于计算机中的内存,而数据库相当于硬盘

4 技术案例

在这里插入图片描述写的时候如果是热点数据,写入缓存和数据库(必须都写入或者都没写,保证数据的一致性)红色是写入
读的时候先在缓存里寻找,如果没有,再去读数据库,绿色是读

5优点

大幅降低了数据库的访问,性能提升非常明显

6缺点

带来一些缓存的问题:缓存击穿,缓存失败,缓存雪崩
服务器成本提升
业务体量支持变大后,数据不断增加,数据库单库太大,单体表量太大,数据查询变慢,数据库再次成为瓶颈

六.垂直架构

1.分库分表

在这里插入图片描述底下的分库分表由中间件

2分布式数据库

在这里插入图片描述

3简介

分布式数据架构:数据库的数据被拆分,数据库数据分布式存储,分布式查询,分布式处理

4出现原因

单机写库性能逐渐到达瓶颈,需要拆分数据库,库表天然支持分布式

5架构原理

在这里插入图片描述
以电子商店为例,数据库是由多个主从库或者多个存储集群构成,支持分布式大规模并行处理

6.技术案例

 现在一般有现成的分布式数据库(冷库),和分布式缓存数据库(热库)。在这里插入图片描述

7.优点

数据库吞吐量大

8缺点

跨库,分布式事务等问题,这些问题目前的mpp都有对应的解决方案。
应用代码耦合在一起,修改代码需要重新发布。

七.微服务架构

1.简介

微服务是一种架构风格,按照业务板块来划分应用代码,使用单个应用的职责更清晰,相互之间可以做到独立的升级迭代。

2.出现原因

拓展型差:应用更新迭代需要重新构建整个系统
持续开发型差
不可靠型:一个小功能的错误,可能导致整个系统无法工作。
不灵活:无法使用不同技术开发
代码维护难:所有功能耦合在一起,新手无从下手;

3.架构工作原理

在这里插入图片描述

4.技术案例

在这里插入图片描述

5优点

1>灵活性高:服务器独立测试,部署,升级,发布
2>独立扩展:每个服务器可以独自扩展
3>提高容错性:一个问题不会让服务器挂了
4>支持多种语言

6.缺点

1>运维复杂度高
2>同一个服务器环境部署冲突
3>资源使用变多,这些独立运行的微服务都需要占cpu和内存
4>处理故障困难:一个请求多个服务器调用,需要查看不同日志完成问题定位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值