简易的网站数据流动过程介绍 -- 用户注册/登录逻辑
目录
简易网站数据流动
注册逻辑
添加软件层
机器层面上的读写分离
图解
登录逻辑
缓存模块
图解
简易网站数据流动过程
一个用户注册/登录逻辑是怎么走的?
注册逻辑
当用户进入网站首页后,根据网页提醒,进入用户注册界面
- 服务器收到请求后,返回给浏览器一个注册页面
当用户在网页上使用get/post方法提交自己的用户信息,网站会进行信息提取
- 检测到是注册操作后,会将用户信息提交到mysql,添加进用户表中
网站不好和数据库直接打交道
- 速度慢 -- 直接与数据库交互可能导致请求延迟
- 可能存在多个数据库 -- 网站无法得知应该访问哪个数据库
添加软件层
任何问题都可以通过加一层软件层来解决
所以,我们可以引入一个中间件
- 作为服务器和后端数据库之间的中介,它使用效率更高的语言,与数据库进行交互
- 它可以根据当前数据库的负载情况,将请求智能地分发到多个数据库实例上,实现负载均衡
- 实现多个数据库之间定期进行数据同步 (也可以使用数据库本身的机制)
机器层面上的读写分离
引入多个数据库的情况下,可以通过机器层面上的读写分离来优化性能
- 可以在单台主机上配置,多个数据库实例 ; 也可以将主数据库和从数据库部署在不同的物理或虚拟机上
- 写的时候只在一台机器上写(主数据库)
- 读随便在从数据库中选一个就行 (只要定期进行主从同步就可以)
- 这样不仅可以让不支持事务的数据库也能作为后端数据库,也能有效提升系统的整体性能和扩展性
图解
登录逻辑
前面的流程和注册逻辑差不多,走到用户在登录页面上输入自己的用户信息后
- 网站检测到时登录操作,需要验证用户信息,于是形成一条查询sql语句,提交给中间件,由它去访问数据库
- 只要查询到用户是合法用户,就可以在服务器上形成cookie,session等信息
缓存模块
还可以增加一个缓存模块
- 将一些高频数据放在里面
- 一些查询操作也会先在缓存中执行
图解


