手机之家系统介绍及架构分享.ppt

手机之家系统介绍及架构分享.ppt

ID:51973440

大小:695.74 KB

页数:36页

时间:2020-03-26

手机之家系统介绍及架构分享.ppt_第1页
手机之家系统介绍及架构分享.ppt_第2页
手机之家系统介绍及架构分享.ppt_第3页
手机之家系统介绍及架构分享.ppt_第4页
手机之家系统介绍及架构分享.ppt_第5页
资源描述:

《手机之家系统介绍及架构分享.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、手机之家新系统介绍及架构分享IMOBILETEAM2009.03.29手机之家首页一)手机之家新系统介绍1)关于手机之家2)新系统概览二)软件架构分享1)架构演变与发展2)DAL设计概览3)持续改进三)Q&A目录手机之家新系统介绍关于手机之家手机之家是一个旨在提供全方位的手机相关服务的资讯类网站。在7年的时间里,手机之家从无到有,已经发展成为极具人气、最受关注的手机产品资讯网站。目前已有的一些统计数据:a.1000w+用户b.3000w+帖子c.1.1TB+附件d.780w+PageView/每天e.5~10w在线用户/15分钟新系统概览(1)a.从头设计、全部重写b.

2、100%采用开源软件c.自行开发:Web层:MVC框架,模板引擎,JS框架...基础组件:简单的glue,Monkey(JavaNIO框架),JMCL...中间件:DAL(DataAccessLayer),JMCD,Session,Tools,小文件存储系统,基于Lucene的搜索系统...d.混合编程:PHP+JAVAe.操作系统:centos5;数据库:MySQL5;WebServer:Nginx新系统概览(3)LogicMySQLModelMySQLMySQLDAL中间件CtrlViewWeb软件架构分享架构演变与发展-老系统的问题a)由于系统分层比较模糊,导致问

3、题极难排查,到底是哪个层面出现了错误?是页面相关的地方、访问数据的地方,还是处理逻辑的地方?b)由于webserver可以直接访问dbserver,在高峰阶段,并发量比较大,导致dbserver经常down掉。c)数据表结构设计不当,导致无法很简单地(甚至不可能)进行竖直和水平方向的伸缩。没有设计!HTTPMySQLMC数据访问层表现层逻辑层FastCGIMySQL架构演变与发展-纯PHP分层方案(1)RW架构演变与发展-纯PHP分层方案(2)方案(1)解决了之前所说的问题。但是:a)开发一个功能,要写很多代码,而且有大部份代码是相当乏味的,重复性极高,千篇一律,特别是

4、数据访问层代码。b)程序员自己控制缓存。这使得:<1>缓存代码渗透到业务逻辑的每一个角落,造成代码维护成本上升。<2>程序员根据自己的喜好来控制缓存的KEY和VALUE,造成缓存混乱。<3>程序员既要负责业务逻辑的编写,还要负责缓存管理,造成编程复杂度提高、开发效率低下。这些问题,迫使我们寻找其它的解决方案。。。架构演变与发展-改进缓存(1)我们对数据库记录的缓存的访问做了一定的抽象处理,开发出了cache处理器。所有的数据访问都经过cache处理器。这样,系统代替程序员接管了缓存的存取访问。缓存的KEY和VALUE由系统处理,从而避免了冲突和混乱。cache处理器的引

5、入减少了40%的数据访问层代码!最重要的是,我们采用了Namespace的方法使得缓存能自动清除了。HTTPMySQLMC表现层逻辑层FastCGI架构演变与发展-改进缓存(2)RWcache处理器数据访问层cache处理器NS处理器phpfcgi+SQLite实现架构演变与发展-改进缓存(3)但是问题又来了,此时,系统响应速度变得很慢。原因在于,我们Namespace是借助PHPfcgi进程+SQLite来实现的。这促使我们对采用纯PHP方案的可行性产生了质疑。。。架构演变与发展-PHP+JAVA,提升性能(1)memcached不支持namespace,也不支持遍历

6、。所以,我们基于之前开发的monkey(javanio框架)实现了一个支持namespace遍历功能的内存缓存程序–jmcd。我们采用了简单高效的STP协议。架构演变与发展-PHP+JAVA,提升性能(2)HTTPMySQLMC表现层逻辑层FastCGIRWcache处理器数据访问层cache处理器NS处理器基于JMCL实现架构演变与发展-PHP+JAVA,提升性能(3)我们改进了Session的实现方式:在monkey和jmcl的基础上开发出sessionserver。这次响应时间提升了80毫秒以上!这基本上达到了性能预期:平均每个页面响应时间低于20毫秒。架构演变与

7、发展-DA引入,DAL产生(1)cache处理器在缓存的存取方面有了很大的进步,但是由于接口众多,使用起来不太方面。而且还是要编写大量的重复代码。为此,我们重构了这部份代码,吸收了其它框架的优点,开发出了DataAccessor(简称DA)。架构演变与发展-DA引入,DAL产生(2)HTTPMySQLMC表现层逻辑层R/WDAJMCD存储NS、IdList、聚合运算结果架构演变与发展-DA引入,DAL产生(3)DA标准化了调用接口,简化了编程,使程序员在业务逻辑层面不再关心缓存与切库分表,极大地提高了生产力(代码量继续减少,易用性提高)。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。