大型网站的实例分析 掌握构建大型网站的架构

  本文主要以理论为主,建议您阅读下面的相关阅读,是关于国外大型照片分享网站Flickr的">网站架构方案研究,很实际很有用。

  学习和掌握构建大型网站的架构,需要汇总散落的文章,梳理零散的内容。做好这项工作很有意义,但是也比较困难。我们的体会是,不妨抓住以下几个主题,逐个分析大型网站的实例,然后横向比较。

  1. Database

  数据存储历来是麻烦,尤其是需要存储海量数据的时候,往往单个数据库容量不够,甚至一个数据库集群也不够。常见的解决办法是分割,譬如按用户ID把海量数据分割成若干块,每块存储到一个独立的数据库里去。但是分割的做法降低了join操作的效率。

  Google Bigtable的效率如何?好处是什么,缺陷是什么?Bigtable对什么样的情景最适用?根据Bigtable原理实现的开源软件,Hadoop/HBase的运行效率如何?

  2. Cache

  用户访问网站时,通常读的操作比写的操作更频繁。为了提高读的操作,不妨把相关内容缓存到内存里,减少Disk IO的消耗。

  MemCached 最近大热,Wikipedia, YouTube, Digg, Twitter等等大型网站都在用MemCached作为缓存工具。SquidCache和Varnish等等工具,也与缓存沾边。Twitter的做法是把MemCached和Varnish结合起来,同时使用。什么样的内容,应该用什么样的缓存工具?不同的工具间如何协调?各大网站的实际运行的结果,有哪些经验和教训?

  3. File System

  有些内容,既没必要存放在数据库里,也不适合存放在缓存中,譬如log 和images。在这种情况下,我们需要文件系统。当有海量内容需要存放在文件系统中时,我们需要使用分布式文件系统。Google File System对于什么样的情景适用,什么样的情景不适用?分布式文件系统常常需要相应的锁机制,保证并发的读写操作不相互干扰。Chubby有什么好处?什么情形下不适用?

  据说MogileFS更适合存储大量的,但是单体尺寸不大的文件,譬如images。而Google File System更适合存放大尺寸但是数量不多的文件。有没有可能把小尺寸的多个文件,合并成一个大文件,然后存储到Google File System中去。在这种情况下,比较MogileFS与Google FS的性能,是否有高下之分?

  4. Thread Management

  一套工序通常由若干任务组成。多线程的办法是由一根线程全权负责整套工序的操作。另外一个办法是把工序斩成几段,每一段由一根或几根线程负责,这种办法称为工作台。

  常见的是多线程的办法。但是工作台的做法有利于集中计算资源处理繁重的任务,避免瓶颈的出现。但是缺陷是需要在不同线程之间,传递记录中间状态的数据。什么样的情形适合用多线程,什么时候用工作台?

  5. Scheduler

  同一个网站通常会提供多种服务,不同的服务需要调用不同的业务逻辑。有些业务逻辑可以在同一台服务器上完成,但是当业务逻辑复杂的时候,需要调用多台服务器合作完成。不同服务的受众对象不同,流量也不同,不同时段的流量也不同,同一时段不同服务的流量也不同,所以需要动态地分配计算资源。这是 scheduler的工作。

  Scheduler给不同服务器分配工作时,最简单的办法是启动预先安装在该服务器上的相关程序。由于不能保证每个程序都十分完美,当一个程序发生错误时,应当避免整个服务器因此而崩溃,影响其它工作的正常进行。是否需要动用virtual machine,实现各个不同工作之间相互隔绝?

  6. Signal Flow and Data Flow

  大型网站后台系统经常由众多服务器组成,服务器与服务器之间时不时会发生数据交换,譬如Web Server解析完用户请求后,把请求转发给某一台App Server,这一台App Server完成了部分工作后,把中间数据转发给下一台App Server。而第二台App Server完成任务后,整个工作就结束了,结果应该返回给Web Server。

  问题是如何让第一台App Server如何知道应该把中间结果给第二台App Server,而第二台App Server又如何知道它的目的地是Web Server?一个比较有效率的做法,是区别数据流和控制流。Server与Server之间常设通道,专供控制流使用,传递指令去控制数据流的发送。数据流不占用控制流通道,只有在需要时,才建立数据流的通道。

  控制流和数据流的组织,需要结合具体的业务逻辑,才能优化设计,减少带宽消耗,缩短数据传输的时间。

  7. Instrumentation

  网站后台各个部分是否运转正常,哪里是瓶颈,哪里空闲。这些都需要实时监控。不仅及时避免整个后台系统的崩溃,而且可以分析各个部分运行的规律,从而找到优化系统的途径。

  问题是,应该选用什么样的监控工具,才能够尽量减少对系统程序的干扰,同时提供有价值的信息?

  8. Anti-abuse

  通常网站面对的是形形色色的用户,绝大多数用户的行为是友好的,但是不排除少数用户蓄意恶作剧。如果事先没有设计防范措施,少数恶意用户的胡作非为,会干扰其他用户享受正常的服务。

  问题是,如何防范并且及时制止恶意行为的发生?

  9. Exception Handling

  不论预先设想有多周密,实际运行时,总会遇到这样那样的意外情况。譬如敏感词的出现,往往事先没有征兆。所以,在设计系统架构时,应该给网管提供必要工具,应付突发事件。

时间: 2024-09-19 12:09:46

大型网站的实例分析 掌握构建大型网站的架构的相关文章

行业网站活动推广实例分析

推广 网站运营探讨俱乐部活动推广实例背景介绍: 讨论内容:"赛维拉"杯-营商电动车网论坛优秀版主及会员评选活动推广方式 活动页面:http://www.ebb365.com/bbs/dispbbs.asp?boardID=59&ID=21162&page=1 受众人群:月收入4000以下,男女比例基本持平,老人也占较大比重. 条件限制:因为网站属性,所以奖品设置有限制.该网站个人用户基础本身比较薄弱,属于比较新的行业站,可利用的行业资源有限.   1.活动周期问题:从活

降权实例分析教你恢复网站权重

seo教程的站点也有被降权的经验,也有完全恢复的经验还有一些放弃的网站没有恢复的可能!今天就是实例来说明网站降权以后seo需要如何来应对,破碎机网站域名是从2010年3月19日注册的域名,当时牵扯到网站beian等问题,正常步骤没有通过只有快速beian花钱解决,浪费了一个星期才完成然后开始网站正式投入运营.优化的网站关键词为 破碎机 砂石设备等破碎机械周边关键词,内页长尾关键词不限,前期首先做的是主页关键词,因为是新站,所以百度权重的培养需要一段时间来完成,不然百度不会给予一个新站好的排名和权

实例分析如何做一个网站的网络推广

网络推广是件辛苦事,尤其是在前期,一切都是零的情况下,非常的艰辛.说说我是怎么样做网络推广 以前本人并没有做过网络推广,对于SEO也只是停留于概念方面,因此很多东西都是边学习边实践.但当做了之后才发现,其实网络推广并不好做. 我所在的公司是一家餐饮公司:上海绿欣餐饮管理有限公司,在来公司面试之前,我就大概看了一下,并在搜索引擎里搜索过相关的关键字"食堂承包",因为公司就是做这个的.可结果非常的不理想.然后我又试了搜索一下公司的名字,哪知道也不理想,情况非常的糟,搜到的前几位,都是一些招

实例分析如何提高企业网站的盈利能力

中介交易 SEO诊断 淘宝客 云主机 技术大厅 笔者手中有一系列汽车产品类网站,包括企业站与商城等.这些网站基本都是运营停车场设备,如车位锁,道闸,减速带等,有些网站带来的订单较高,而有些站点则几乎无订单来源.如何来提高企业网站的盈利能力呢?笔者主要从两个方面来考虑. 一.提高网站流量是基础 企业网站流量是硬伤,特别是一些冷门机械类产品站,本来网站主要关键词就没百度指数,而且自然排名上还有七八个竞价,没投放竞价广告的厂家其流量少得可怜.怎么来提高网站流量,笔者一个车位地锁商城是采取了如下措施.

实例分析:中小型旅游网站如何站内优化

随着百度投资去哪儿,阿里巴巴投资穷游网,携程.艺龙战略转型的市场变化,中小型旅游网站面临着更窘迫的环境.除了常规的竞价优化,提高用户体验和搜索引擎体验,是中小型旅游网站必须要加强的部分.今天主要分享中小型旅游网站做站内优化的要点. 笔者运营聚途旅游网,为了便于读者更直观的阅读,将以这个网站为例,为读者分享中小型旅游网站如何站内优化.读者也可以看下我们的优化结果和成果.本文主要从关键词.内链.内容.结构.服务器及代码等五大方面进行分析. 站内优化要点一:关键词. 关键词优化需要考虑两个要素,第一是

实例分析:仿6room网站图片链接效果

链接 在本人上一篇教程<彻底弄懂CSS盒子模式五(定位强化练习) >有讲到一个很酷的链接面板提示的实例制作,那时主要是用到display方法来实现对象的显示和隐藏的,但是后来了解到那种方法对搜索引擎不友好,一些特别的阅读设备会读不到信息,比如盲人阅读器等等,所以今天又写了一个类似的教程,这次是用margin来实现,本实例实现方法简单但却很实用,实例做的是仿6room(著名web2.0视频网站)图片链接效果,下面请先运行代码看看最终实现的效果. 运行代码框 <!DOCTYPE html P

我的纹身网站SEO实例分析

我不是专业的SEOer,也是通过在各个论坛的学习,掌握了很多的相关知识,如今自己的网站改版,渐渐的把这些知识运用到纹身网站的优化里面,中间出了很多问题或者叫错误,但是都通过自己对知识的渴望解决了.现在将我缩运用的知识要点和大家分享. 一.纹身网站关键词的选择 很多学习SEO的人总是纠结于外链.内链,抛开代码的知识不谈,这样的纠结也走错了方向.我开始对于纹身关键词的选择就发生了错误.原来网站的关键词是"纹身图案",经过每天的研究和分析,才发现"纹身图案大全"更具有商业

实例分析食品电商网站优化细节

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 如今电商类网站风起云涌,但伴随着的也是许多小电商网站倒闭,相信去年关注电商网站的朋友都记忆犹新,笔者只是一名优化人员,对电商网站的运营也是一知半解,从SEO流量的角度出发,我们该如何优化好一个中小型的电商网站平台呢?今天笔者就一个案例简单谈一下自己的一些看法.与企业站不同的是电商类网站优化起来需要专业的团队,不是一二个人几个关键词就能搞定的.

实例分析:动漫网站优化该如何对待

昨天,一个群里的朋友想叫我帮忙优化一个网站,现在快要过年了,大家回家都会比较忙,拜年,喝酒什么的,根本没什么空去优化网站,所以不想接,他又说也可以明年过来再合作,我就看了看他的网站,听了听他的想法. 他的网站叫3K动漫网,想做一个关键词:华丽的挑战漫画,想让我帮他一个月内推上首页,我抱着试试看的想法,就拿来分析了下,一看吓一跳:3000左右的指数,而且以每月百分之四百的增长速度在攀升,这样的词一个月推上首页应该不可能吧,我在看了下,是12月份指数才开始疯狂涨的,应该是有原因的吧,就查了下华丽的挑