一)单机架构:
一)定义:应用服务和数据库服务器共用一台服务器,所有的服务被部署到一台服务器上面
蓝色的就是我们写的JAVA代码用户服务负责用户的登录和注册,商品服务用于商品的购买和交易,交易模块用于用户的下单和购买,在数据库服务里面创建了用户表,商品表和交易表
二)出现原因:出现在互联网的早期,用户访问量比较小,单服务器机器足够满足需求
三)架构的工作原理:以电子商城为例,可以看到通过应用服务(划分出了多个模块)和数据库在单个服务器上面协作完成业务的运行
四)单机架构的优点:
4.1)部署简单
4.2)成本低
五)单机架构的缺点:
5.1)用户请求量变大,会存在着严重的性能瓶颈
5.2)数据库服务和其它应用相互竞争资源
二)应用数据分离架构
一)定义:应用服务和数据库服务使用不同的的服务器,这个时候的应用服务和数据库服务不是在一台主机上进行交互的,而是需要通过网络来进行交互
注意:当用户访问到应用服务器的时候,首先由BDS服务器将用户输入的域名转化成IP地址,这个时候必须是应用服务器的IP地址而不能是数据库服务的IP地址,否则会产生安全问题
二)出现原因:当用户访问量过大的时候,单机服务存在着严重的资源竞争例如CPU资源,内存资源,导致站点变慢
三)架构的工作原理:以电子商城为例,可以看到应用服务(划分出了多个模块)和数据库在各自的服务器上面通过网络传输完成业务运行
四)优点:成本相对可控,性能相比于单机服务是有提升的,数据库单独隔离,不会因为应用把数据库搞坏是有一定的容灾能力的
五)缺点:硬件成本变高,性能还是存在瓶颈,无法应对于海量并发
三)应用服务器集群架构:
简介:引入例如负载均衡操作,应用以集群的方式运作
出现原因:单个应用不足以支持海量的并发请求,高并发的时候站点响应变慢
注意:用户在输入域名解析的时候,解析的是负载均衡的IP地址
架构工作原理:以电子商城为例,可以看到应用不只是一个,而是变成了多个,通过负载均衡来进行支持海量的并发
此时DNS服务器在进行域名解析的时候将一部分用户输入的域名变成IP1,此时这个HTTP请求就去寻找第一个LSV/F5,其他的请求被域名解析系统解析成IP2,此时这个HTTP请求就去寻找第二个LSV/F5;
但是此时用户的访问量进一步加大,连DNS服务器都处理不了域名的转换了,这个时候浏览器本身做缓存,这时浏览器就直接可以绕过DNS服务器直接去请求对应的LVS/F5
优点:
1)应用服务高可用,应用满足高可用,不会因为一个服务器出问题把整个站点挂掉
2)应用服务器具备一定的高性能,如果说不访问数据库,应用处理通过扩展可以支持海量请求快速响应
3)应用服务器可以支持一定的扩展能力,支持横向扩展
缺点:
1)数据库成为性能瓶颈,应用满足高可用,不会因为一个服务器出现问题而把整个站点挂掉,但是数据库只有一个,高可用能力非常差,是无法应对数据库的海量查询
2)数据库是单节点,可用性非常差,如果数据库挂了,那么整个节点也就挂了
3)运维工作增多,扩展之后部署运维工作增多,需要开发对应的工具完成快速部署
4)硬件成本比较高
DNS做一级负载均衡,LSV做二级负载均衡,NGINX做三级负载均衡,Tomact做水平扩展
四)读写分离主从分离架构
1)定义:将数据库读写操作分到不同的节点上面,数据库服务器搭建主从集群,一主一从或者是一主多从都可以,数据库主机负责进行写入操作,从机只是负责读取操作
2)出现原因:数据库成为瓶颈,而互联网应用一般要求读多写少,数据库承载压力比较大,主要是这些读的请求造成的,所以我们就可以把读操作和写操作分离开
3)架构工作原理:以电子商城为例,可以看到很多数据库服务器不再是一个,而是变成了多个,数据库的主机负责进行写操作,从机负责读操作,数据库主机通过主从复制将数据从主机同步到从机