作家
登录

通过分布式设计及文件级数据缓存打造千万级别WEB应用

作者: 来源: 2012-06-12 14:22:22 阅读 我要评论

【51CTO专稿】2011年京东商城碰到了严重的流量相关的性能瓶颈,51CTO也做了专门的报道,我有幸在6年前主持开发过日流量千万级别的系统,所以也在微博发表了一下自己的观点(具体详见 http://os.51cto.com/art/201111/300247.htm)

不是每个人都有幸亲自参与并主持设计大型网络应用的,我应该说就是其中的幸运儿之一吧。我在2003年毕业后投身IT界,先是在国内某知名的棋牌游戏公司担任了3年的程序员;06年有幸参得到一个机会主持开发了一个日流量2000万级别的互联网应用。09年转做市场运营,时间过去3年多了,现在技术日新月异,或许当年的设计已被替代。作为一个技术圈的退役老兵,仍坚持将自己的设计模型写出来,跟大家分享学习,并欢迎大家批评指正。

本文只做抛砖引玉的作用,具体实施欢迎与我互动。

项目概况        某大型网络应用,含普通的用户功能(如登录、信息修改等);含信息发布功能;含统计功能(如信息查看、点击等);以及其他周边功能。

硬件配置        数据库服务器1台;中央应用服务器1台; web服务器20台(可灵活扩充)。

设计思路

  1. 通过购买专业的DNS服务,将域名流量按照区域(如北京,浙江等)和服务商(如电信,网通等)分发到不同的web服务器N,在每一台web服务器安装并部署web项目;每台web根据用户的不同命令读写本机缓存XML;
  2. 中央应用服务器定时的获取多台web服务器的缓存xml文件,进行应用级的数据分析汇总,并将结果写入数据库服务器;
  3. 中央应用服务器定时的获取数据库服务器信息,并同步到多台web应用服务器。

设计难点及解决办法 

WEB服务器版本控制

解决办法:为每台web服务器配置并标注好版本号;在中央应用服务器做好版本兼容性工作。如:web程序的统计功能,新版本V1.1去掉了老版本V1.0中的IP统计。Web服务器1的当前web版本为V1.0,Web服务器2的当前版本为V1.1。在中央应用服务器需提供两个方法,TongJi-v10()和TongJi-v11()。在v10的方法中先做数据校正,再调用新方法v11。

 

中央应用服务器海量数据传输

解决办法:假设一台服务器承载200万的流量,将产生大量的应用数据。可以先将这些数据在web端进行压缩后再传输,能节省80%以上的带宽成本。



数据的及时性

数据及时性是使用文件缓存比较棘手的问题之一。

解决办法:对数据及时性进行归类。在设计期间,我们将数据的及时性简单的划分为三个级别,按需,高及时和非及时。按需数据立即同步;高及时信息每10分钟同步到中央应用服务器,低及时信息每小时同步。这其中,比较有意思的是一些看似按需的操作也并非真正的按需操作。如用户密码修改,修改后的密码密文就存在web服务器N的xml配置文件中,就能确保用户使用新密码登录。用户在没有切换线路或者更改区域的情况下,仍然是使用的web服务器N,也无需按需同步密码数据,只需要高及时同步。



数据的安全性

大量Web服务器存在着大量的数据,甚至包含账户或者资金信息,某种意上讲这些数据是不安全的。

解决办法:文件存放路径、加密、模糊。不要将xml缓存文件存放在web路径可以供用户下载的地方,配置绝对的硬盘路径来设置配置文件的读写。如账户的密码只存取MD5加密字串,如资金采取多套对称加密算法加密,用不要用password来标识字段为密码而采用I1,不仅能模糊字段还能节省磁盘及后续传输消耗.

作者简介: @365姜志林 ,3年程序员,4年cto,2年的市场运营,专注于数据分析和SEO策略,拒绝YY,用数据和结果说话。 


  推荐阅读

  分散式架构相关问题解析

高校在校园网建设中积累了大量的网络信息资源,这些信息资源以各自独立的服务器内置硬盘或直连存储(DAS)为存储空间存放,各个应用系统相互独立,属于典型的分散式架构。这种架构存在以下问题:1.存储空间不能满足数>>>详细阅读


本文标题:通过分布式设计及文件级数据缓存打造千万级别WEB应用

地址:http://www.17bianji.com/yunwei/345.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)