大流量、高并发的网站的底层系统架构

标签: 流量 并发 网站 | 发表时间:2014-04-11 21:42 | 作者:myeclipse_bj
出处:http://www.iteye.com

大流量、高并发的网站的底层系统架构

2010-08-10 13:04:24   来源:inJava 
 

[转载自] http://www.webjx.com/webmanage/experience-25319.html


动态应用,是相对于网站静态内容而言, 是指以c/c++、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数据库系统、缓存系统、分布式存储系统等密不可分。

 

大型动态应用系统平台主要是针对于大流 量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。

大型动态应用系统又可分为几个子系统:

         Web前端系统

         负载均衡系统

        数据库集群系统

        缓存系统

        分布式存储系统

        分布式服务器管理系统

        代码分发系统

Web前端系统

结构图:

 

 

为了达到不同应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服 务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应用访问量升高时,通过增加服务器节点达到整个服务器集群的性能提高,同 时使他应用也会受益。该Web前端系统基于Apache/Lighttpd/Eginx等 的虚拟主机平台,提供PHP程序运行环境。服务器对开发人员是透明的,不需要开发人员介入服务器管理

负载均衡系统

 

 

 

负载均衡系统分为硬件和软件两种。硬件负载均衡效率高,但是价格贵,比如F5等。软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统 低,不过对于流量一般或稍大些网站来讲也足够使用,比如lvs,nginx。大多数网站都是硬件、软件负载均衡系统并用。

数据库集群系统

结构图:

 

 

 

由于Web前端采用了负载均衡集群结构提高了服务的有效性和扩展性,因此数据库必须也是高可靠的才能保证整个服务体系的高可靠性,如何构建一个高可靠的、可以提供大规模并发处理的数据库体系?

我们可以采用如上图所示的方案:

1)使用 MySQL 数据库,考虑到Web应用的数据库读多写少的特点,我们主要对读数据库做了优化,提供专用的读数据库和写数据库,在应用程序中实现读操作和写操作分别访问不同的数据库。

2)使用 MySQL Replication 机制实现快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。

3)写数据库有多台,每台都可以提供多个应用共同使用,这样可以解决写库的性能瓶颈问题和单点故障问题。

4)读数据库有多台,通过负载均衡设备实现负载均衡,从而达到读数据库的高性能、高可靠和高可扩展性。

5)数据库服务器和应用服务器分离。

6)从数据库使用BigIP做负载均衡。

缓存系统

 

 

 

缓存分为文件缓存、内存缓存、数据库缓存。在大型Web应用中使用最多且效率最高的是内存缓存。最常用的内存缓存工具是Memcachd。使用正确的缓存系统可以达到实现以下目标:

1、使用缓存系统可以提高访问效率,提高服务器吞吐能力,改善用户体验。

2、减轻对数据库及存储集服务器的访问压力

3、Memcached服务器有多台,避免单点故障,提供高可靠性和可扩展性,提高性能。

分布式存储系统

结构图:

 

 

 

WEB系统平台中的存储需求有下面两个特点:

1) 存储量很大,经常会达到单台服务器无法提供的规模,比如相册、视频等应用。因此需要专业的大规模存储系统。

2) 负载均衡cluster中的每个节点都有可能访问任何一个数据对象,每个节点对数据的处理也能被其他节点共享,因此这些节点要操作的数据从逻辑上看只能是一个整体,不是各自独立的数据资源。

因此高性能的分布式存储系统对于大型网站应用来说是非常重要的一环。(这个地方需要加入对某个分布式存储系统的简单介绍。)

分布式服务器管理系统

结构图:

 

 

 

随着网站访问流量的不断增加,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,原来基于单机的服务器管理模式已经不能够满足我们的需求,新的需求必须能够集中式的、分组的、批量的、自动化的对服务器进行管理,能够批量化的执行计划任务。

在分布式服务器管理系统软件中有一些比较优秀的软件,其中比较理想的一个是 Cfengine。它可以对服务器进行分组,不同的分组可以分别定制系统配置文件、计划任务等配置。它是基于C/S 结构的,所有的服务器配置和管理脚本程序都保存在Cfengine Server上,而被管理的服务器运行着 Cfengine Client 程序,Cfengine Client通过SSL加密的连接定期的向服务器端发送请求以获取最新的配置文件和管理命令、脚本程序、补丁安装等任务。

有了Cfengine 这种集中式的服务器管理工具,我们就可以高效的实现大规模的服务器集群管理,被管理服务器和 Cfengine Server 可以分布在任何位置,只要网络可以连通就能实现快速自动化的管理。

代码发布系统

结构图:

 

 

随着网站访问流量的不断增加,大多的网络服务都是以负载均衡集群的方式对外提供服务,随之集群规模的扩大,为了满足集群环境下程序代码的批量分发和更新,我们还需要一个程序代码发布系统。

这个发布系统可以帮我们实现下面的目标:

1) 生产环境的服务器以虚拟主机方式提供服务,不需要开发人员介入维护和直接操作,提供发布系统可以实现不需要登陆服务器就能把程序分发到目标服务器。

2) 我们要实现内部开发、内部测试、生产环境测试、生产环境发布的4个开发阶段的管理,发布系统可以介入各个阶段的代码发布。

3) 我们需要实现源代码管理和版本控制,SVN可以实现该需求。

这里面可以使用常用的工具Rsync,通过开发相应的脚本工具实现服务器集群间代码同步分发。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [流量 并发 网站] 推荐:

大流量、高并发的网站的底层系统架构

- - 企业架构 - ITeye博客
大流量、高并发的网站的底层系统架构. [转载自] http://www.webjx.com/webmanage/experience-25319.html. 动态应用,是相对于网站静态内容而言, 是指以c/c++、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用.

Web网站的几个并发量级

- - 开源小站
评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的. 但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数量级. 相信很多人谈论一个网站的热度,总免不了会询问日均PV,同时在线人数、注册用户数等运营数据,说实话从技术角度来说,这几个数值没有一个可以放在一起比较的——一个静态网站的PV跟一个SNS类/Web Game网站的PV根本就不是一回事.

网站改版对流量的影响:影响TechCrunch流量的几大因素

- Jerry - 互联网的那点事
TechCrunch 在被 AOL 收购之后,进行了一次“激进”的改版,内部称为“重新设计”(Redesign). 改版后的第一天,TechCrunch 的主编们接受了暴风雨般的口水洗礼,外界一致认为“越改越丑”. 负责执行的 Dave Feldman 专门撰写了一篇文章来阐述设计的细节,并在文章标题中使用了“滚蛋”(Piss You Off)这种词语,可见压力之大.

网站流量异常变动的8种常见原因

- Demi - 蓝鲸的网站分析笔记
网站分析中,最常见的一项工作就是对流量的异常变化进行分析和解释.今天网站的流量变高了,为什么. 后天网站的流量降低了,又是为什么. 对网站有什么影响?这些都是等待我们去回答的问题. 蓝鲸网站分析笔记 Original Source. 通常在遇到这种情况时,我们会先进行定量分析,通过细分找出具体发生异常变化的那部分流量.然后再进行定性分析,找出这部分流量发生异常变化的具体原因.第一步的工作相对简单一些,通过google analytics的细分功能逐层剖析,就可以找到原因.而第二步的工作就有些难度了.因为数据本身只能说明发生了什么,却不能告诉我们为什么,所以,真正的原因需要我们自己去寻找..

二线电子商务网站流量分析

- Eric - 月光博客
  本文并不想分析那些一线知名电子商务网站,而是从一些不知名的电商网站进行分析,看看这些小电商网站的流量来源到底是哪里. 以下是这些天我分析和查询的一些流量较高的二线电子商务网站,其流量数量,收录数量,搜索关键字来源,以及其网站流量排名的分析,分析时间是今年年初.   在网站流量分析报告中,主要以Alexa排名为基准,排列对比二线的电子商务网站,在电子商务市场竞争白热化的今天,如果不烧钱做广告做营销,是很难获取大批用户的,但是,这些二线电商网站是如何积累流量的呢.

小规模低性能低流量网站设计原则

- Specific - DBA Notes
作者:Fenng 发布在 dbanotes.net. 到处都是什么大规模啊,高流量啊,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳大爷也说过,"过早优化是万恶之源"),所以,这里反弹琵琶,讨论一下小规模、低性能、低流量的网站该如何搞法.

Pinterest流量超LinkedIn成美第三大社交网站

- - 业界
北京时间4月10日早间消息,数字营销服务公司Experian Marketing Services(以下简称“Experian”)发布最新报告称,图片分享社交网站Pinterest已经成为继Facebook、Twitter之后的美国第三大社交网站,访问量超过了LinkedIn和Google+等. Experian对美国3月份社交网站市场访问量进行了调查,结果显示,Facebook上月美国访问量超过了70亿次,Twitter为1.82亿次,Pinterest为1.04亿次.

图片分享网站Pinterest推荐流量接近Twitter谷歌

- - TechWeb 今日焦点 RSS阅读
Pinterest网站推荐流量接近Twitter和谷歌(腾讯科技配图).   腾讯科技讯(万学)北京时间2月2消息,据国外媒体报道,内容共享公司Shareaholic的一项最新调查结果表明,Pinterest现在是推荐流量(referral traffic)增长最快的网站. 事实上,它的推荐流量已与Twitter和谷歌不相上下.

浅谈网站流量劫持防范措施

- - 博客园_EtherDream の 原创空间
  前几天上网打开163首页时,发现页面底部莫名其妙的出现一个边框. 这在以前可是未曾有过的,而且以后也绝不可能会有这么丑陋的设计.   趋于好奇心,立刻在边框上点了右键审查元素. 尼玛,不看不知道,网易首页的HTML何时变得这么劣质了.   没有doctype声明,连title元素都没有. script还是language=JScript风格,这得追溯到多少个世纪前了~ 最劣质的是框架居然还是元素.

CNZZ网站流量统计原理简析

- - CSDN博客推荐文章
这是我的域名www.iyizhan.com,暂无内容,其中只有一个页面index.html,. 在index.html上放置了如下的 js 脚本:. 1.当用户访问这个页面时,会请求src,对应的是上面的脚本的源文件:. id:5364825 //网站id. web_id:5364825 //网站id.