与传统企业应用系统相比,大型互联网系统的特点包括:
- 高并发、大流量
- 高可用,指系统7*24小时不间断提供服务
- 海量数据
- 用户分部广泛,网络情况复杂
- 安全环境恶劣
- 需求快速变更,发布频繁
- 渐进式发展,指有小系统逐渐变大
大型网站演化展历程
- 应用程序、文件与数据库在同一个服务器上
- 应用服务与数据服务分离
- 为了减小数据库压力,使用缓存改善网站性能,缓存包括应用服务器的本地缓存和远程分布式缓存
- 单一应用服务器能处理的连接有限,网站访问的高峰期容易到达瓶颈,使用应用服务器集群改善网站的并发处理能力
- 网站使用缓存后,使绝大多数数据读操作不需要读取数据库了,但是仍然有一部分读操作(缓存不命中和缓存失效)和全部写操作需要访问数据库,为了应对数据库负载压力过高的场景,数据库需要读写分离
- 尽早地将数据返回给用户,利用缓存的思想,使用CDN和反向代理,CDN部署在网站提供商的机房,用户可从最近的网络提供商的机房获取数据;网站的中心机房作反向代理,反向代理服务器可缓存数据。
- 使用分布式文件系统和分布式数据库系统
- 为了应对复杂的数据存储和检索需求,使用非关系型数据库NoSQL和非数据库查询技术如搜索引擎
- 业务拆分,拆分成多个应用,应用之间可以通过超链接建立关系(如在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列将数据分发。
- 分布式服务,各个应用系统只需要做一些简单的操作,具体的业务操作大家使用共有的分布式服务器去处理。