
1. 大体流程
1.1 域名控制台:挂多个IP,进行请求轮询
用户使用PC端或者移动端向服务器发送请求,首先通过域名控制台(DNS域名解析服务器)挂多个IP同时指向一个应用,对每个IP进行轮询
。
1.2 web服务层(nginx):处理高并发


多个IP与多个服务器进行一一对应关系,nginx(反向代理服务器),他们同时处理并发请求,如果当前服务器崩溃,就会断掉服务器,请求会去轮询
访问其他的服务器。
1.3 应用服务层(uwsgi+django/flask): 横向扩展
每个服务器绑定的nginx反向代理服务器后,nginx可以绑定通过uwsgi绑定多个应用服务层(横向扩展)
1.4 数据库层:读写分离、负载均衡、主从复制
1.4.1 主从复制
由于读的数据量远远大于写的数据量,所以主数据库(Master)用来写
,从数据库(Slave)用来读
。每次数据库更新就会使从数据库更新。这样保证读的时候会有数据。
1.4.2 读写分离
在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
1.4.3 负载均衡
将并发请求分配到多台服务器上,同时每台服务器进行单个一对一的数据库读的任务。
网友评论