好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

大众点评网的Web开发之路(王宏).pdf

41页
  • 卖家[上传人]:E****
  • 文档编号:117983006
  • 上传时间:2019-12-11
  • 文档格式:PDF
  • 文档大小:8.45MB
  • / 41 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 大众点评网的技术变迁之路 1 菜鸟 2年 4年 6年 8年 以终为始 2 ABOUT ME 王宏 / 工业酒精 大学辍学,野路子出身 大众点评网创办加入至今 高级系统架构师 alcohol.wang@ @DP王宏 3 2003年创建,国内领先的城市生活消费指南网站 覆盖全国2300多个城市,近120万家商户,2000万 条点评信息 活跃用户超过4200万,独立用户超过1000万 500M(GA)浏览量 / 月,高峰3000次动态请求 / 秒 70台主干服务器,165位技术人员 4 2003-2005 www.zS 虚拟主机 ASP + Access 4万动态访问量 / 天 2名技术人员 5 TROUBLE Access这斯“不是”数据库 负载越来越高,网站访问速度变慢 落后的ASP语言 UrlRewrite引起的CPU负载 6 ACTION 增加独立服务器 HP DL360,Web服务器 HP DL380,Database服务器 数据库升级 语言的变换 ASP ➜ ASP.Net 1.1 用烂技术不是丢人的事情, 把好技术用烂才丢人。

      7 2006-2009 5台服务器 ASP.Net 1.1 + SQL Server 180万动态访问量 / 天 8名技术人员 8 页面访问忽快忽慢 9 动静分离 了解动态页面请求和静态资源请求的不同特征 使用新的域名,指向静态资源 新建⼀一个站点,处理静态资源 成本低,收益高 无缝衔接CDN 10 11 前端优化 12 Why Slow? 13 南北互通 14 CDN 静态CDN对于静态资源的优化非常有效 静态资源的版本控制 参数型版本控制 路径型版本控制 http://i1.dpfi 不要将鸡蛋放在同⼀一个篮子里 15 机房选择 网络质量, 让用户帮助选择机房 使用“标准”图片进行监控对比 软性指标 支持响应、基本服务 硬性指标 防火、防盗、防断电 16 使用“标准”图片进行监控对比 var idcUrl = + Math.random(); document.getElementById(top).innerHTML = ; function idc(url, start) { ?var loadTime = new Date().getTime() - start; ?_gaq.push([_trackEvent, IDCLoadTime, url, , loadTime]); } 17 持续监控 Google Analytics / 百度统计 Gomez / 基调网络 DNSPod / 监控宝 Cacti / Ngios 18 分布式文件系统 海量小文件,缓存命中率低 单机大磁盘,IO负载增高,单点故障 MogileFS、FastDFS、Taobao TFS、MongoDB GridFS 19 Load Balance 20 负载均衡 DNS轮询 免费,无成本,无法进行健康检查,策略调整麻烦 Software 免费,成本低,有⼀一定瓶颈,Nginx / LVS Hardware 价格贵,可控型和稳定性很好 都需要注意Session保持的问题,最好是无Session化 21 Upgrade 22 架构升级 架构层次清晰化 Web Server App Server Cache Database 架构思想的上下贯彻 全局缓存 数据冗余、No SQL Join 23 DataBaseAdapter? ORM?DataRouter? DianPing.Framework? DianPing.Caching? DianPing.Common? Query? UserService?ShopService? ……? ServiceProvider? WebPages/Ajax/API? 24 缓存策略 缓存对象的粒度,便于缓存的更新、删除 缓存的序列化和反序列化对CPU和网络的开销 自动缓存:DAO ⇢ 数据访问层 + AOP 大批量缓存对象的清除 多Memcached服务器下,Consistent-Hash 25 缓存粒度 List ↓ List Shop Shop Shop ↓ mget 26 大批量缓存的清除 Lazy Delete Cache Provider ↣ Cache Object Version Shop_{ShopID} Shop_{ShopID}_{Version} 27 ⼀一致性哈希 28 缓存雪崩 缓存大量失效,导致Database负载上升影响到整个集群 单机开发是容易忽略,只有面对高并发的时候才会 凸显 双缓存策略 代码改动、缓存错乱 用Redis替代Memcache 复制分发、快照、对象的部分读取 29 数据冗余 三个范式的弊端 数据冗余的弊端 No SQL Join 数据⼀一致性 清晰的数据拓扑 异步更新 30 2010-2011 ASP.Net 2.0 / 3.0 / 3.5 MySQL + NoSQL Memcached MogileFS Lucene 38台服务器 73名技术人员 31 32 33 行动方针 高层的鼎力支持 协调大家目标⼀一致 原有人员的学习转型 小步快跑 先易后难 中后期快速复制 这是⼀一个长期的过程 34 DataBaseAdapter? ORM?DataRouter? DianPing.Framework? DianPing.Caching? DianPing.Common? Query? UserService?ShopService? ……? ServiceProvider? WebPages/Ajax/API? 35 36 迁移改进 RPC 分布式数据层 消息中间件 业务数据网状连接 控制数据中心节点 计算资源可动态调控的架构 开发、测试、发布自动⼀一体化 更加行之有效的业务监控 37 持续优化 发展? 发现问题? 反馈? 解决问题?改进? 进化? 新问题出现? 38 Donald Knuth 高德纳 Premature optimization is the root of all evil 过早优化是万恶之源 Fenng 冯大辉 好架构不是设计出来的 好的架构和最初设计有关系, 但最重要的是发展中的演化。

      39 THE END 40 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.