一、单台服务器+数据库(原始)
原始架构
二、增加反向代理
反向代理
代理是一个接收和转发请求的过程。正常情况下,「正向代理」代理的对象是客户端,「反向代理」代理的对象是服务端,它完成这些功能:
健康检查功能,确保我们的服务器是一直处于运行状态的
路由转发功能,把请求转发到正确的服务路径上
认证功能,确保用户有权限访问后端服务器
防火墙功能,确保用户只能访问允许使用的网络部分等等
三、引入负载均衡器
引入负载均衡器
反向代理还有另外一个功能:他们也可以充当负载均衡器。
Nginx经过配置,可以反向代理多台服务器。
部署多台Nginx(反向代理服务器),防止宕机,提升系统运行稳定性。
Nginx反向代理以及负载均衡配置参考:https://www.cnblogs.com/sixiweb/p/3988805.html
四、扩展数据库
扩展数据库
负载均衡器的使用使得我们可以在多个服务器之间分配负载,但是现在所有的服务器还是使用的一个数据库进行存储和检索数据。我们可以用同样的方式,再扩展几台数据库出来,减轻存储检索压力,但是这里存在一个数据一致性的问题。
(1)主从模式或者单实例写多副本读
其中一台数据库负责数据写入修改,其他服务器负责读,这个方案的好处是保证了一致性,因为数据只能被单实例一台数据库写入,之后把写入数据同步到其他部分即可,所以该方案适合读多写少的情景。
I