Topic | Why | How | Notes |
---|---|---|---|
热数据缓存 | 网站访问特点符合二八定律 | 应用服务器本地缓存&分布式缓存服务器远程缓存 | 80%的业务访问集中在20%的数据上 |
应用服务器集群 | 单台服务器处理能力,存储空间限制 | 搭配负载均衡调度服务器使用 | 服务器的成本和水平伸缩能力 |
数据库读写分离 | 缓存未命中,缓存过期,写操作,数据库负载压力过大 | 通过主从复制实现读写分离 | 数据的最终一致性 |
反向代理,CDN加速 | 用户地理位置差异,网络环境复杂 | 网络提供商机房部署CDN, 网站中心机房部署反向代理 | 访问延迟与用户流失率正相关 |
分布式存储 | 持续增长的业务需求,单表数据规模庞大 | 数据分片, 租户分库, 业务分库 | 分而治之 |
搜索引擎 | 日益复杂的数据检索需求 | 封装统一的数据访问模块 | 海量数据的全文搜索 |
业务拆分 | 日益复杂的业务场景 | 划分产品线,据此拆分出多个不同的应用,独立部署与维护 | 单页面简化,消息中转与分发,服务垂直拆分 |
分布式服务 | 应用增多服务耦合,整体复制度提升,部署维护困难,数据库连接资源有限 | 提取共用业务,独立部署共用服务 | SOA, 微服务 |
Distributed Solution | Why | How |
---|---|---|
分布式静态资源 | 减轻应用服务器负载,加快浏览器并发加载速度,用户体验团队开发维护利于网站分工合作 | 动静分离(静态资源独立分布式部署,采用独立的域名) |
分布式应用和服务 | 改善网站性能和并发性,加快开发和迭代速度,减少数据库连接资源消耗,不同应用复用共用服务便于业务扩展 | 将分层或分割后的应用分布式部署 |
分布式配置 | 不同环境不同配置文件管理复杂,修改配置需重新打包发布时间成本较高 | 做统一的分布式注册中心,支持线上服务器配置的实时更新 |
分布式锁 | 保证数据的最终一致性,正确实现工作单元的并发和协同 | Redis中SET(NX+EX)命令,Zookeeper |
分布式计算 | 搜索引擎索引构建、数据仓库数据分析统计等业务计算规模巨大 | Hadoop, MapReduce分布式计算框架 |
分布式数据和存储 | 集中式存储对搭建和管理、主干网络带宽的要求较高,单台服务器存储空间有限 | 对关系型和非关系型数据库进行分布式部署 |
分布式文件系统 | 数据获取需求指数倍的增长,单台服务器存取能力有限 | GridFS, GFS, HDFS, TFS |
参考: 《大型网站技术架构》