读《大型网站技术架构:核心原理与案例分析+李智慧》记一
2016-01-29 21:27
471 查看
震惊知识一:
小型网站的设计:
应用程序、数据库、文件在同一台服务器上,通常服务器操作系统使用Linux,应用程序使用PHP开发,数据库使用MySql
随着网站业务的发展,一台服务器不能满足需求。开始将服务器划分:
应用服务器:处理大量的业务,需要强大的CPU
文件服务器:需要快速磁盘检索和数据缓存,更快的硬盘和更大的内存
数据库服务器:更大的硬盘
随着发展需要提高系统的缓存能力:二八定律,80%的业务访问集中在20%的数据上,网站缓存分为两种:
1. 缓存在本地应用服务器上:
优点:访问速度快
缺点:缓存数量有限,出现和应用程序争用内存的情况
2. 缓存在专门的分布式缓存服务器上的远程缓存
缺点:单一应用程序能够处理的请求连接有限
优点:使用集群方式,部署大内存的服务器,理论上做到不受内存容量限制
改善网站并发处理的能力
问题:当网站高并发,服务器的处理能力、存储空间不足
解决:1、不要首先想换更强大的服务器.
2、增加一台服务器分担原有服务器的访问及存储压力
数据库读写分离:通过配置两台数据库的主从关系,可以将一台数据服务器的数据更新同步到另一台服务器上,从而实现读写分离
使用反向代理和CDN加速网站响应
原理:都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房中获取数据;而反向代理则部署在网站的中心机房,当用户请求达到中心机房中,首先访问的服务器是反向代理服务器,有用户请求的资源则返回给用户
目的:尽早返回数据给用户,一方面加快用户访问速度,一方面减轻服务器的负载压力
使用分布式文件系统和分布式数据库系统
分布式数据库是网站数据库拆分的最后手段:
1、表单数据分库
2、业务分库
小型网站的设计:
应用程序、数据库、文件在同一台服务器上,通常服务器操作系统使用Linux,应用程序使用PHP开发,数据库使用MySql
随着网站业务的发展,一台服务器不能满足需求。开始将服务器划分:
应用服务器:处理大量的业务,需要强大的CPU
文件服务器:需要快速磁盘检索和数据缓存,更快的硬盘和更大的内存
数据库服务器:更大的硬盘
随着发展需要提高系统的缓存能力:二八定律,80%的业务访问集中在20%的数据上,网站缓存分为两种:
1. 缓存在本地应用服务器上:
优点:访问速度快
缺点:缓存数量有限,出现和应用程序争用内存的情况
2. 缓存在专门的分布式缓存服务器上的远程缓存
缺点:单一应用程序能够处理的请求连接有限
优点:使用集群方式,部署大内存的服务器,理论上做到不受内存容量限制
改善网站并发处理的能力
问题:当网站高并发,服务器的处理能力、存储空间不足
解决:1、不要首先想换更强大的服务器.
2、增加一台服务器分担原有服务器的访问及存储压力
数据库读写分离:通过配置两台数据库的主从关系,可以将一台数据服务器的数据更新同步到另一台服务器上,从而实现读写分离
使用反向代理和CDN加速网站响应
原理:都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房中获取数据;而反向代理则部署在网站的中心机房,当用户请求达到中心机房中,首先访问的服务器是反向代理服务器,有用户请求的资源则返回给用户
目的:尽早返回数据给用户,一方面加快用户访问速度,一方面减轻服务器的负载压力
使用分布式文件系统和分布式数据库系统
分布式数据库是网站数据库拆分的最后手段:
1、表单数据分库
2、业务分库
相关文章推荐
- javascript框架设计之浏览器的嗅探和特征侦测
- javascript框架设计之类工厂
- ThinkPHP框架设计及扩展详解
- 多进程共享mem 标志设计
- Android学习之 关于DB本地数据库模块
- 学习高焕堂老师的 《简单的黑箱框架模式》笔记总结
- 构建通用的操作日志框架实践过程
- csharp:Dapper Sample
- csharp: 用Enterprise Library对象实体绑定数据
- Step by Step-构建自己的ORM系列-开篇
- Step by Step-构建自己的ORM系列-数据访问层
- Step by Step-构建自己的ORM系列-配置管理层
- 关于ORM中只有XML没有映射实体的思考?期待大家的建议
- 关于ORM中只有XML没有映射实体的分析 推荐
- Step by Step-构建自己的ORM系列-ORM改进方案思考(上)
- .NET里简易实现AOP 推荐
- .NET里简易实现IoC
- 插件式架构设计实践一:插件式系统架构设计简介 推荐
- JavaScript框架设计-异步处理
- SpringMVC源码之DispatchServlet请求处理