SlideShare a Scribd company logo
1 of 33
大型互联网应用架构设计 完美时空 北美研发中心 陈浩 12/5/2010 SH
实战 架构的演变 及使用技术 (今天) 理论 大型系统的核心目标  高可用、易扩展与高性能 其他相关 ,[object Object]
监控,[object Object]
  各阶段面对的技术挑战与处理办法,[object Object]
 Apache/PHP/MySQL 在同一主机上
瓶颈
通常先出现在数据库,然后才是Apache/php
硬盘 I/O (Innodb) 或MyISAM锁等待,[object Object]
 Apache/PHP在Server  A;MySQL 在Server B
瓶颈
硬盘 I/O (Innodb) 或MyISAM锁等待
网络I/O,[object Object]
 MySQL主从复制及读写分离 (master 负责IN/UP/DEL, slave负责 SELECT)
SELECT, IN/UP/DEL可以在应用程序内指定访问不同服务器 (如使用不同的handle或Db Adapter)
WEB Server可能需要使用负载均衡,[object Object]
架构的演变 -阶段性成果 恭喜!   你终于拥有了一个可以(勉强?)称得上“大型”的网站! 100w PV/day? 挑战才刚刚开始!
架构的演变 –遇到新问题 MySQL  1. Slave Lag  每台Slave数据完全一样。有的忙,有的闲 2. 数据量越来越大,单表过大,查询效率太低; 综合1.2. 通常采用 ,[object Object]
 MySQL水平扩展(库表拆分)Web Server 负载过高  ,[object Object]
 静态文件缓存  Squid/Varnish / CDN
 负载均衡Web Tier Cache Tier DB Tier
架构的演变 – 系统分层 整理思路,总结一下系统架构 WEB Tier Cache Tier DB Tier File Tier
架构的演变 – 系统分层 – Web Tier Web Tier 一个常见的PHP应用程序结构 ,[object Object]
 C: Controller 控制器
 M: Model 业务逻辑
 D: Data Access Layer 数据访问层V M C D
架构的演变 – 系统分层 – Web Tier
架构的演变 – 系统分层 WEB Tier Cache Tier DB Tier File Tier
架构的演变 – 系统分层 – Cache Tier Memcached最常见,Redis等也慢慢开始被广泛使用
架构的演变 – 系统分层 – Cache Tier
架构的演变 – 系统分层 – Cache Tier 两种典型的Memcached数据分布 ,[object Object],新加节点导致数据重新分布,对数据库造成瞬间冲击 ,[object Object],也被其他分布式系统使用 解决数据分布不均匀问题 物理节点中添加多个虚拟节点 (Dynamo) 节点移动实现负载均衡 (Cassandra)
架构的演变 – 系统分层 – Cache Tier Memcached同步 序列化算法
架构的演变 – 系统分层 WEB Tier Cache Tier DB Tier File Tier
架构的演变 – Db Tier - MySQL数据库集群 Replication Master -> Master Master -> Slave

More Related Content

Viewers also liked (7)

Berchman lyrics(151 200)
Berchman lyrics(151 200)Berchman lyrics(151 200)
Berchman lyrics(151 200)
 
PISA_2009_Prentsaurrekoa.ppt
PISA_2009_Prentsaurrekoa.pptPISA_2009_Prentsaurrekoa.ppt
PISA_2009_Prentsaurrekoa.ppt
 
Itun sozial eta ekonomikoa
Itun sozial eta ekonomikoa Itun sozial eta ekonomikoa
Itun sozial eta ekonomikoa
 
Lamp在51座席项目的应用
Lamp在51座席项目的应用Lamp在51座席项目的应用
Lamp在51座席项目的应用
 
ENTREGA COMUN_11_120410
ENTREGA COMUN_11_120410ENTREGA COMUN_11_120410
ENTREGA COMUN_11_120410
 
Archivo
ArchivoArchivo
Archivo
 
Diário
DiárioDiário
Diário
 

Similar to 大型互联网应用架构设计

Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统melity78
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京Joseph Chiang
 
Migrations 與 Schema操作
Migrations 與 Schema操作Migrations 與 Schema操作
Migrations 與 Schema操作Shengyou Fan
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作Shengyou Fan
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
Ibatis技术讲座
Ibatis技术讲座Ibatis技术讲座
Ibatis技术讲座xujie
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學Bo-Yi Wu
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南yiditushe
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發koji lin
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析mysqlops
 
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题 Lumend
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniterChun-Kai Wang
 
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIStwMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIStwMVC
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现hua qiu
 

Similar to 大型互联网应用架构设计 (20)

Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统如何架构和开发高性能,高伸缩性Web 应用系统
如何架构和开发高性能,高伸缩性Web 应用系统
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
Migrations 與 Schema操作
Migrations 與 Schema操作Migrations 與 Schema操作
Migrations 與 Schema操作
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Ibatis技术讲座
Ibatis技术讲座Ibatis技术讲座
Ibatis技术讲座
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Php应用程序常见安全问题解析
Php应用程序常见安全问题解析Php应用程序常见安全问题解析
Php应用程序常见安全问题解析
 
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIStwMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
twMVC#32應用 ASP.NET WebAPI2 Odata 建置高互動性 APIS
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 

More from thinkinlamp

对My sql dba的一些思考
对My sql dba的一些思考对My sql dba的一些思考
对My sql dba的一些思考thinkinlamp
 
云端的数据库
云端的数据库云端的数据库
云端的数据库thinkinlamp
 
My sql innovation work -innosql
My sql innovation work -innosqlMy sql innovation work -innosql
My sql innovation work -innosqlthinkinlamp
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbitthinkinlamp
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江thinkinlamp
 
大型微博应用Feed系统浅析
大型微博应用Feed系统浅析大型微博应用Feed系统浅析
大型微博应用Feed系统浅析thinkinlamp
 
Enterprise connect
Enterprise connectEnterprise connect
Enterprise connectthinkinlamp
 
I os tech talk 观后感
I os tech talk 观后感I os tech talk 观后感
I os tech talk 观后感thinkinlamp
 
网页游戏开发与敏捷开发
网页游戏开发与敏捷开发网页游戏开发与敏捷开发
网页游戏开发与敏捷开发thinkinlamp
 
My sql自动化监控
My sql自动化监控My sql自动化监控
My sql自动化监控thinkinlamp
 
服务化的网站架构
服务化的网站架构服务化的网站架构
服务化的网站架构thinkinlamp
 
Php extension开发
Php extension开发Php extension开发
Php extension开发thinkinlamp
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍thinkinlamp
 
大型Sns数据库设计
大型Sns数据库设计大型Sns数据库设计
大型Sns数据库设计thinkinlamp
 
Mysql overview_20100811
Mysql overview_20100811Mysql overview_20100811
Mysql overview_20100811thinkinlamp
 
面向搜索引擎的友好程序开发
面向搜索引擎的友好程序开发面向搜索引擎的友好程序开发
面向搜索引擎的友好程序开发thinkinlamp
 

More from thinkinlamp (20)

数据仓库
数据仓库数据仓库
数据仓库
 
对My sql dba的一些思考
对My sql dba的一些思考对My sql dba的一些思考
对My sql dba的一些思考
 
云端的数据库
云端的数据库云端的数据库
云端的数据库
 
My sql innovation work -innosql
My sql innovation work -innosqlMy sql innovation work -innosql
My sql innovation work -innosql
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit2011 06-12-why do we need the rabbit
2011 06-12-why do we need the rabbit
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
蜘蛛
蜘蛛蜘蛛
蜘蛛
 
大型微博应用Feed系统浅析
大型微博应用Feed系统浅析大型微博应用Feed系统浅析
大型微博应用Feed系统浅析
 
Enterprise connect
Enterprise connectEnterprise connect
Enterprise connect
 
I os tech talk 观后感
I os tech talk 观后感I os tech talk 观后感
I os tech talk 观后感
 
网页游戏开发与敏捷开发
网页游戏开发与敏捷开发网页游戏开发与敏捷开发
网页游戏开发与敏捷开发
 
My sql自动化监控
My sql自动化监控My sql自动化监控
My sql自动化监控
 
服务化的网站架构
服务化的网站架构服务化的网站架构
服务化的网站架构
 
Php extension开发
Php extension开发Php extension开发
Php extension开发
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍
 
大型Sns数据库设计
大型Sns数据库设计大型Sns数据库设计
大型Sns数据库设计
 
MySQL高可用
MySQL高可用MySQL高可用
MySQL高可用
 
Mysql overview_20100811
Mysql overview_20100811Mysql overview_20100811
Mysql overview_20100811
 
面向搜索引擎的友好程序开发
面向搜索引擎的友好程序开发面向搜索引擎的友好程序开发
面向搜索引擎的友好程序开发
 

大型互联网应用架构设计