您的位置:首页 > 运维架构 > 网站架构

项目成长记(五) ―― 大型架构设计

2014-01-11 17:43 435 查看
自从老板说可以提供大量资金,我就彻底放开了,打算要大干一场,但是俗话说工欲善其事必先利其器,所以就开始“利其器”吧!

大家都知道,用户访问到页面会经过很多层级,比如DNS层、负载均衡层、web层等等,我在这里大概总结出6层,如下图




如果细分的话肯定不止这几层,这里就抽象出这几层来说,如果能优化好这几层就已经很好了。这里的每一层都可以作为单独的项目来设计架构。
1、首先来说的是DNS层,这一层的技术难点在于大并发的QPS和智能解析用户IP到不同的服务IP,可以通过DNS做最基本的负载均衡。普通的DNS并发可能在20W QPS,可是对于像淘宝这样有800万卖家独立域名来说,这些是远远不够的,所以淘宝单独研发了一款千万QPS能力的高性能DNS防护系统,这些东西可能是远非小公司或者个人能力能解决的,所以这里我们可以用一些第三方的服务,比如DNSPod等。

2、其次要说的是CDN。CDN在大并发压力下,提升效果明显,下图是我设计的CDN架构,大家可以在这个基础上进行扩展和改造,比如可以把能缓存的都缓存起来,比如前端页面,而对于动态的内容通过异步加载进来,对于失效可以采用主动失效方式,比如更新里页面的模版,就发起缓存失效请求,这样可以做到页面的实时更新并且缓存命中率大幅提高。





3、负载均衡层可以根据规模做多层负载均衡,比如LVS做第一层,Nginx做第二层,可以无限扩展和无单点。一下是负载均衡层的简单架构图:




4、Web Server层是各个应用的层级,这里有很多应用,他们之间相互隔离但都相互联系,所以我这里推荐SOA架构,即面向服务结构,把不同的服务接口话,这种架构的好处很多,大家可以google百度一下好处和设计方式,然后应用到自己的项目中。一下是我设计的web server架构。





5、文件系统的功能就是共享存储,对于访问量不大的服务来说,通过NFS+heartbear+DRBD架构就很稳定,而对于大并发服务来说,就需要分布式架构了,这里推荐MFS分布式存储系统,这里从网上借了两张MFS的架构图(第一张是读操作,第二张是写操作),仅供参考。








6、数据层的组成有很多种,我这里只举几个大家比较常用的,比如MySQL、Memcached、Redis、Mongodb等,下面我通过一个简单的架构图来展示数据层的设计。





总结:大概的框架已经了解了,每一层都可以很深入的挖掘,这样每一层相互配合,项目不稳定高效才怪呢。又一个周六忙活过了,下一个目标就是具体的细节了,通过压力测试进行验证架构的正确性。
预知后事如何,请听下回分解……

本文出自 “村长爱技术” 博客,请务必保留此出处http://weijingwu.blog.51cto.com/8376555/1350877
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: