原始版:
用户—服务器—数据库
优点:维护简单
缺点:①单节点②无容灾③无负载
动静分离:
用户—nginx+ajax+rest api—多台服务器—数据库
使用nginx访问静态资源配合ajax来减少服务器和用户的交互流量(json传输),nginx负载均衡。
缺点:①安全性低(暴露接口给用户)②session持久化问题
高速缓存:
用户—nginx+ajax+rest api—多台服务器—缓存—数据库
nginx把https转换为http(基于安全性),缓存处理速度快且降低了数据库压力,session持久化到缓存中解决了session持久化问题。
缺点:①数据库和缓存的一致性问题(同步机制)②缓存失效问题(数据库压力增大)
分布式:
用户—nginx+ajax+rest api—多台服务器—缓存—服务总线/注册中心—应用A/应用B/应用C...—消息中间件、调度中间件、监控平台—数据库读写分离。
使用docker来增加负载(占用一定资源),日志写入hadoop集群。docker还可以高效解决异地容灾问题。