阶段一:
数据库,文件,服务器部署在一台机器上,俗称all in one.
阶段二:
应用服务器,数据库服务器,性能更好的硬盘三台服务器。
阶段三:
百分之八十的数据访问集中在百分之二十的数据上,二八原则,所以出现了缓存,应用服务器,本地缓存,远程缓存(单机缓存和分布式缓存),文件服务器,数据库服务器。
问题1:
具有哪种业务特点的数据使用本地缓存?
问题2:
具有哪种业务特点的数据使用远程缓存?
问题3:
分布式缓存在扩容时会碰到什么问题,如何解决?
问题4:
分布式算法有哪几种,各有什么优缺点?
阶段4:横向扩展应用服务器
随着访问QBS的增长,服务器的处理能力就会出现瓶颈,所以要做一个服务器的集群,新增负载均衡调度服务器(Load Balance),然后就可以横向扩展服务器了,解决了服务器处理能力的瓶颈。因此出现了下买的架构:
负载均衡服务器+应用服务器集群+分布式缓存集群+文件系统服务器+数据库服务器
问题1:
负载均衡调度策略有哪些,有什么优缺点,分别适合什么场景?
阶段5:数据库读写分离
当用户量达到一定量的时候,数据库又达到了一个瓶颈,使用数据库的读写分离,在主库写,从库读,数据库和应用服务器通过数据访问模型连接,这个模型可以让写应用代码的人感觉不到读写分离的存在。
阶段6:增加CDN和反向代理服务器,提高应用服务器性能
CDN可以解决不同地区访问速度问题,反向代理可以在服务器机房中缓存用户资源。
阶段7:分布式文件服务器集群
问题1:
如何不影响已经部署在线上的文件访问?
阶段8:专库专用
数据库又出现了一个瓶颈,选择专库专用,进行一个数据的垂直拆分,相关的业务分别用自己的库存储。
问题1:
跨业务的事物和跨库的事物如何解决?
阶段9:数据库的水平拆分
单个数据库不能解决某个业务问题了,进行数据库水平拆分,就是将同一个表的数据拆分到两个数据库当中。
阶段10:搜索引擎(search sever cluster),Nosql server
在架构不断进化的过程中,还要考虑安全性,数据分析,监控,反作弊等一系列问题。
继续发展...SOA架构,服务化,消息队列,任务调度,多机房...