2016-10-12
系统架构演变:反向代理和CDN加速

- 使用反向代理和CDN加快系统访问速度,解决后端服务器的负载压力,应付复杂的网络环境和不同地区的访问要求,CDN和反向代理实现的基本原理都是缓存。
系统架构演变:分布式文件系统和分布式数据库

- 任何强大的单一服务器都满足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展最终也将无法满足需求,需要使用分布式数据库及分布式文件系统来支撑。分布式数据库是系统数据库拆分的最后方法,只有在单表数据规模非常庞大的时候才使用,更常用的数据库拆分手段是业务分库,将不同的业务数据库部署在不同的物理服务器上。
系统架构演变:使用NoSQL和搜索引擎

- 随着业务越来越复杂,对数据存储和检索的需求也越来越复杂,系统需要采用一些非关系型数据库如NoSQL和分数据库查询技术如搜索引擎。应用服务器通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。
系统架构演变: 业务拆分

- 为了应对日益复杂的业务场景,通常使用分而治之的手段将整个系统业务分成不同的产品线,应用之间通过超链接建立关系,也可以通过消息队列进行数据分发,当然更多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。
系统架构演变:分布式服务

- 公共的应用模块被提取出来,部署在分布式服务器上供应用服务器调用。随着业务越拆越小,应用系统整体复杂程度呈指数级上升,由于所有应用要和所有数据库系统连接,最终导致数据库连接资源不足,拒绝服务。