单服务器模型

重点:只有一台Web服务器,所有的访问和数据处理都在这台服务器上处理。

用户访问过程:

1. 浏览器或客户端输入访问URL,一般是以域名形式进行访问。

2. DNS域名解析,拿到服务器的IP地址。

3. 根据IP地址访问服务器。

4. 服务器返回结果。

单服务器带数据库模型

重点:增加了一台单独的数据库服务器,用于缓解Web服务器上数据访问压力。一般使用关系型数据库,如MySQL。

关于垂直扩展与水平扩展

垂直扩展指增加单个服务器的处理能力,比如堆内存,堆CPU核心,堆SSD等。水平扩展指增加更多的服务器,通过负载均衡的手段将流量分布到各个服务器上,从而提高并发能力。

流量较小时,垂直扩展效果显著,且操作简单。但随着流量的增加,垂直扩展将很快触顶,因为硬件的机能是有上限的,不能无限叠加,这时只能寻求水平扩展。并且垂直扩展不具备容错(failover)和冗余(redundancy)能力,如果服务器挂了,整个系统也就不可用了。

增加负载均衡

重点:通过负载均衡将流量平均分布到一组服务器上,降低单个服务器的压力,并且使系统具备了容错能力,当两个服务器中的任何一个挂掉时,流量可以转发到另一台上,由此提高了可用性。

此方案下服务器一般位于内网中,需要使用反向代理才能让外面的设备访问到。

增加冗余数据库

重点:使用数据库复制(Database Replication)技术,增加数据层的并发能力和容错能力,提高可用性。

通常有一个主数据库,提供只写操作,有多个从数据库,提供只读操作。主从数据库之间通过数据库复制保证数据同步。

所有对数据的增加、删除、修改操作都发生在主数据库上,从数据库只负责同步主数据库的内容,然后提供查询功能,由于读的频率一般比写高很多,所以从数据库的数量一般要比主数据库多。

为提高可用性,当所有从数据库都挂掉时,主数据库也可以临时提供查询功能,当主数据库挂掉时,可以将某个从数据库临时提升成主数据库。

最终设计

重点:增加了负载均衡和数据库复制。

增加缓存


























  • 无标签