1 / 28

大型 Web 应用与研发

大型 Web 应用与研发. Langwan 10.11.06. 有哪些技术要做. 数据分析 系统构架 程序构架 底层研发 服务集成 日志监控. 论坛. 数据特点 可以按照版块划分 主题与帖子存在父子关系 每个版块与主贴就是一个翻页集合 搜索是必须有的. 数据五要素. 主键 索引 计数 数据 缓存. 论坛分析. 主题没有子贴多,子贴才是瓶颈所在 依据时间段归档数据并不依赖版块 被顶起来的帖子重新复制到第一块分区 不依赖数据库进行翻页,依赖翻页索引 依赖全文检索服务解决搜索问题. 博客. 数据特点 是围绕个人的信息服务

Download Presentation

大型 Web 应用与研发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 大型Web应用与研发 Langwan 10.11.06

  2. 有哪些技术要做 • 数据分析 • 系统构架 • 程序构架 • 底层研发 • 服务集成 • 日志监控

  3. 论坛 • 数据特点 • 可以按照版块划分 • 主题与帖子存在父子关系 • 每个版块与主贴就是一个翻页集合 • 搜索是必须有的

  4. 数据五要素 • 主键 • 索引 • 计数 • 数据 • 缓存

  5. 论坛分析 • 主题没有子贴多,子贴才是瓶颈所在 • 依据时间段归档数据并不依赖版块 • 被顶起来的帖子重新复制到第一块分区 • 不依赖数据库进行翻页,依赖翻页索引 • 依赖全文检索服务解决搜索问题

  6. 博客 • 数据特点 • 是围绕个人的信息服务 • 存在大量无需立即展示的信息 • 图片是主要娱乐载体 • 评论多互动少

  7. 博客分析 • 依据用户划分数据,无法依据时间划分 • 使用队列服务异步处理信息 • 发表、评论、访问量统计、脚印、私信 • 需要专门的图片处理程序 • 图片下载、压缩、多尺寸裁剪、存储 • 空间主体静态化,含评论等少量互动元素 • 支持用户迁移 • 评论的增量静态化

  8. SNS • 数据特点 • 存在大量的投递数据 • 存在大量第三方系统对接 • 存在大量过期信息,信息时效性强 • 存在大量数据挖掘工作 • 谁过生日、可能好友、同城、一起玩过 • 存在各种维度的信息点评 • 赞、评论、分享、转发

  9. SNS分析 • 信息通过消息系统大量投递给最终用户 • 人与时间两个维度对数据进行分块 • 过期消息和已读消息会被智能清理 • 通过各类数据挖掘提供新产品

  10. 论坛 博客 SNS 维度 时间 人 人+时间 SNS只保存每人最新的数据

  11. 系统构架总结 • 利用多台设备进行负载均衡 • 利用CDN网络加速文件访问 • 利用队列划分服务传递消息 • 没有任何数据可以完整储存 • 数据存在多个副本很难唯一 • 跨网络的延迟是必然存在的

  12. 常规系统构架设计 • 部署 • 管理 • 灾备 • 监控 • 扩展 • 日志 • 路由

  13. 程序构架 • 代码规范 • 设备访问 • 数据库、memcached • 公共组件 • 配置 • 开发者配置、测试环境配置、线上环境 • 路由 • 功能路由(MVC) • 设备路由 • 缓存、数据库、存储、服务

  14. 使用数据 • 获取数据、校验数据 • 业务逻辑 • 用户及权限 • 集中常量公式算法 • 日志存储 • 异常错误 • 各层易于测试、方便优化

  15. 程序构架其它特点 • 围绕服务编程 • 只关心业务逻辑利用服务快速整合产品 • 一个数据中心一套服务,各服务统一管理 • 服务都具备可扩展性,同时满足多产品应用 • 稳定的访问接口易于升级更替 • 灵活的部署能力 • 杜绝本地读写,可任意整体部署 • 代码本身也依据不同服务组成,可拆分部署

  16. 底层库开发 • 数据库访问 • 缓存访问 • 文件存储访问 • 数据存储访问 • 队列服务访问 • 图片服务访问 • 邮件服务访问

  17. 优化 • 数据库优化 • 操作系统优化 • 环境优化 • 网络优化

  18. 数据库优化 • 数据一定要拆分重组 • 主键、索引、计数、数据、缓存 • 内存要够大 • 参数要优化 • 索引不扎堆越单纯越好 • 用专门的全文检索服务 • 重视监控 • 设备情况、慢查询、无效查询 • 用程序排序就不用数据库 • 读写要分离

  19. 环境优化 • 脚本加速器一定要装 • 使用FastCgi与Nginx是一种不错的选择

  20. 网络优化 • 使用CDN加速静态文件 • 静态文件多设置几个域名 • 传递压缩过的数据 • 减少DNS解析,设定Hosts文件 • 禁止Mysql的DNS反向查询 • 数据中心之间建立专线 • 使用多网络互通的机房 • 远程复制数据减少网络访问 • 排查非正常关闭网络服务

  21. 棘手问题 • 不好扩展 • 没有本地读写,WEB服务就容易扩展 • 纯数据并发读的问题,所有设备都容易扩展 • 数据库、文件存储、数据存储 • 缓存最容易直接扩展规模 • 不苛求数据完整,数据容易被切分重组 • 单任务并发容易扩展 • 队列服务、图片服务、上传服务 • 无限大的问题通过云计算来解决

  22. 不好重构 • 切成服务都好重构 • 前端后端单独重构 • 合并服务也能重构 • 切分服务照样重构 • 业务逻辑与底层分开重构 • 公式算法独立封装独立重构

  23. 不好迁移 • 用host访问设备,杜绝IP • 迁移数据最难,迁移机房最容易 • 旧系统只读,新系统迁移 • 新旧系统同步数据,逐步迁移 • 只关心被访问到的数据

  24. 不确定故障来源 • 系统异常 • 流量消失、链接不释放、CPU内存负载超高、磁盘已满 • 服务异常 • 队列积压、图片处理忙、缓存命中率低 • 接口异常 • 接口无法访问,失败率高 • 程序异常 • 日志及异常报警

  25. 联系我 • 网站 http://www.echohello.cn • 博客 http://hi.baidu.com/langwan 谢谢

More Related