前言
上一篇文章介绍了单机架构,由于性能瓶颈,满足不了高访问量,所以演化出了数据分离架构。
这种架构也很简单只是将应用服务和数据库服务分离开来,避免单一架构的资源争夺的情况。
一、 应用数据分离架构
1. 简介
应用服务和数据库服务使用两台服务器进行分别部署,应用服务就是对外提供服务的,数据库服务就是用来存储数据的。
2. 出现原因
单机架构存在严重的资源竞争,导致网站访问速度变慢。
3. 架构工作原理
以电子商城网站为例,用户访问淘宝网站,开始还是先访问 DNS 服务器,之后拿到 淘宝服务器的 IP 之后就去请求这个服务器的资源,此时的应用服务和数据库服务两台服务器是通过网络进行通信的,所以在请求商品信息的时候还是访问服务层,服务层再去查询数据库,只是这个操作是经过网络来完成交付的,和单一架构就这一点有区别。
4. 架构优缺点
优点:1. 成本比单机架构高一点,但是相对来说是可控的(原来部署一台服务器,现在部署两 台服务器)
2. 性能比单机架构提升了一点。
3. 数据库是单独存在的,如果如果应用层出现了一个 bug,这个 bug 会导致数据库的数 据损坏,此时不会因为这个 bug 而弄丢数据库的数据。具有一定的容灾能力。
缺点:1. 仍然不支持高并发、高访问量的场景,就算是部署两台服务器,性能也只是提高了一 点,如果是大量的并发请求,应用数据分离架构还是难以支持的。
2. 硬件成本增高,原来部署一台服务器,现在部署两台。
二、 应用服务集群架构
1. 简介
加入了负载均衡技术,应用是以多个服务器的方式(集群)运行,通过负载均衡技术避免单一节点(服务器)负载过大,达到资源利用的最优解。
2. 出现原因
上述的架构仍然不满足海量的并发请求,通过 负载均衡 + 集群 的方式来处理高并发。
3. 架构工作原理
以电子商城为例,如下图所示:用户在访问服务器时,先通过负载均衡技术将请求发送给对应的服务器节点,负载均衡再根据分配策略将请求发送给合适的服务器,然后再去查询商品,数据库和应用之间还是以网络的方式进行通信,之后服务层把拿到的数据返回给用户(这里负载均衡有两种模式,一种是返回的流量经过负载均衡,一种是流量不经过负载均衡)
4. 架构优缺点
优点:1. 高可用:一个服务器节点挂了之后其他的还可以继续工作。
2. 高性能:因为和数据库通信时经过网络的,需要一定的时间成本,所以如果不是和访 问数据库相关的操作,性能是很高的,而且集群中计算节点很多,所以支持 高并发的请求。
3. 支持横向扩展:如果这个集群中的节点不够用了,可以继续增加服务器节点来保证上 述优点。
缺点:1. 服务器是集群,但是数据库是单点,所以数据库的性能是有限的.
2. 硬件成本高。
3. 运维部署成本高,服务器节点增多,之后就需要快速部署,需要开发工具开发更快 捷。