手机之家系统介绍及架构分享.ppt
《手机之家系统介绍及架构分享.ppt》由会员分享,可在线阅读,更多相关《手机之家系统介绍及架构分享.ppt(36页珍藏版)》请在三一文库上搜索。
1、手机之家新系统介绍及架构分享,IMOBILE TEAM 2009.03.29,手机之家首页,一)手机之家新系统介绍 1) 关于手机之家 2) 新系统概览 二)软件架构分享 1)架构演变与发展 2) DAL设计概览 3)持续改进 三)Q & A,目录,手机之家新系统介绍,关于手机之家,手机之家是一个旨在提供全方位的手机相关服务的资讯类网站。在7年的 时间里,手机之家从无到有,已经发展成为极具人气、最受关注的手机产 品资讯网站。 目前已有的一些统计数据: a. 1000w+用户 b. 3000w+帖子 c. 1.1TB+附件 d. 780w+ Page View/每天 e. 510w在线用户/15
2、分钟,新系统概览(1),a. 从头设计、全部重写 b. 100%采用开源软件 c.自行开发: Web层:MVC框架, 模板引擎, JS框架. 基础组件:简单的glue, Monkey(Java NIO框架), JMCL . 中间件:DAL(Data Access Layer), JMCD, Session, Tools, 小文件存储系统, 基于Lucene的搜索系统. d.混合编程:PHP+JAVA e.操作系统:centos5; 数据库:MySQL5; Web Server: Nginx,新系统概览(3),Logic,MySQL,Model,MySQL,MySQL,DAL,中间件,Ctrl,
3、View,Web,软件架构分享,架构演变与发展 - 老系统的问题,a)由于系统分层比较模糊,导致问题极难排查,到底是哪个层面出现了错误 ?是页面相关的地方、访问数据的地方,还是处理逻辑的地方? b)由于web server可以直接访问db server,在高峰阶段,并发量比较 大,导致db server经常down掉。 c)数据表结构设计不当,导致无法很简单地(甚至不可能)进行竖直和水平 方向的伸缩。,没有设计!,HTTP,MySQL,MC,数据访问层,表现层,逻辑层,FastCGI,MySQL,架构演变与发展 - 纯PHP分层方案(1),R,W,架构演变与发展 - 纯PHP分层方案(2),方
4、案(1)解决了之前所说的问题。但是: a)开发一个功能,要写很多代码,而且有大部份代码是相当乏味的,重复性 极高,千篇一律,特别是数据访问层代码。 b)程序员自己控制缓存。这使得: 缓存代码渗透到业务逻辑的每一个角落,造成代码维护成本上升。 程序员根据自己的喜好来控制缓存的KEY和VALUE,造成缓存混乱。 程序员既要负责业务逻辑的编写,还要负责缓存管理,造成编程复 杂度提高、开发效率低下。 这些问题,迫使我们寻找其它的解决方案。,架构演变与发展 - 改进缓存(1),我们对数据库记录的缓存的访问做了一定的抽象处理,开发出了cache处 理器。 所有的数据访问都经过cache处理器。这样,系统代
5、替程序员接管了缓存 的存取访问。缓存的KEY和VALUE由系统处理,从而避免了冲突和 混乱。 cache处理器的引入减少了40%的数据访问层代码! 最重要的是,我们采用了Namespace的方法使得缓存能自动清除了。,HTTP,MySQL,MC,表现层,逻辑层,FastCGI,架构演变与发展 - 改进缓存(2),R,W,cache 处理器,数据访问层,cache 处理器,NS 处理器,php fcgi + SQLite实现,架构演变与发展 - 改进缓存(3),但是问题又来了,此时,系统响应速度变得很慢。原因在于,我们 Namespace是借助PHP fcgi进程+SQLite来实现的。 这促使
6、我们对采用纯PHP方案的可行性产生了质疑。,架构演变与发展 - PHP+JAVA,提升性能(1),memcached不支持namespace,也不支持遍历。 所以,我们基于之前开发的monkey(java nio框架)实现了一个支 持namespace遍历功能的内存缓存程序 jmcd。我们采用了简单高效 的STP协议。,架构演变与发展 - PHP+JAVA,提升性能(2),HTTP,MySQL,MC,表现层,逻辑层,FastCGI,R,W,cache 处理器,数据访问层,cache 处理器,NS 处理器,基于JMCL 实现,架构演变与发展 - PHP+JAVA,提升性能(3),我们改进了Ses
7、sion的实现方式:在monkey和jmcl的基础上开发出 session server。 这次响应时间提升了80毫秒以上!这基本上达到了性能预期:平均每个页 面响应时间低于20毫秒。,架构演变与发展 - DA引入, DAL产生(1),cache 处理器在缓存的存取方面有了很大的进步,但是由于接口众多,使 用起来不太方面。而且还是要编写大量的重复代码。 为此,我们重构了这部份代码,吸收了其它框架的优点,开发出 了Data Accessor(简称DA)。,架构演变与发展 - DA引入, DAL产生(2),HTTP,MySQL,MC,表现层,逻辑层,R/W,DA,JMCD,存储NS、 Id Lis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机 家系 介绍 架构 分享
链接地址:https://www.31doc.com/p-3484063.html