当性能收到限制,首先垂直扩展,尝试提高单机性能,提升到瓶颈后。尝试水平扩展,load balancer 通过 Round robin 返回要访问的服务器。
存在一个服务器都能访问的地方, load balancer(cookie 存一个 random id, 不能存ip 因为可能多台设备登录, 负载均衡通过 id 查找真正的服务器) 或者缓存(访问量大时,缓存会清除)。
raid 可以保证两个挂了,其他还存有相同数据,可以恢复。
主从复制,主从恢复。备份。
心跳。流言。
用户相关的数据应该存在都能访问的位置,Session 应该储存在可以被所有服务器访问的位置,最好是外部 cache。
分表, 反范式优化(减少 Join),主从结构, SQL 优化
直接使用 NoSQL, 如 mongoDB 减少 join
优化数据表查询速度。