1、产品测试部产品测试部 金昆金昆2019年年4月月高性能网站架构演进高性能网站架构演进 案例分析案例分析Topicl高性能网站架构演化n重构步骤1-物理分离webserver和数据库WebserverDatabasen重构步骤2-增加页面缓存WebserverDatabase前端页面缓存前端页面缓存nSquid(squid-cache.org)n重构步骤3-增加页面片段缓存WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存Cache-OScache Taglibn重构步骤4-增加数据页面片段缓存WebserverDatabase前端页面缓存前端页面缓存页面片段缓存
2、页面片段缓存数据缓存数据缓存n重构步骤5-数据缓存法则(Location Remotion)l本地 还是 远程lXML缓存?l服务器内存数据文件?浏览器浏览器应用服务器应用服务器RDBMSRDBMSmemcachedmemcachedmemcachedmemcached首次访问:从首次访问:从RDBMS中取得数据保存到中取得数据保存到memcached第二次后:从第二次后:从memcached中取得数据显示页面中取得数据显示页面nMemcachedMemcached是高性能的分布式内存缓存服务器。目的是通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度,提高可扩展性。n重构
3、步骤6-增加webserverWebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存nWeic Server ThreadnClusterClusterBeforeServer 1 PrimaryServer 2 SecondaryServer 3 ClusterAfterServer 1 PrimaryServer 2 PrimaryServer 3 Secondary n重构步骤7-数据库分库WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存n分布式数据库lMySQLlOracle RACn重构步骤
4、8-分表、DAL和分布式缓存WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存分布式缓存分布式缓存DALn分隔方式l水平分割l垂直分割n重构步骤9-分布式文件系统WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存分布式缓存分布式缓存DAL分布式分布式文件系统文件系统nGFS(Google File System)nHadoopn重构步骤10-数据读写分离和廉价存储方案WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存分布式缓存分布式缓存DAL写写分布式分布式文件系统文件系统Database读读n重构步骤11-进入大型分布式时代WebserverDatabase前端页面缓存前端页面缓存页面片段缓存页面片段缓存数据缓存数据缓存分布式缓存分布式缓存DAL写写分布式分布式文件系统文件系统Database读读可复用的业务可复用的业务可类数据中心可类数据中心同步同步/异步异步同步同步/异步异步