当前位置:首页 > 建站优化 > 正文内容

企业网站架构图(小型企业网站架构)

zhuangbi888.com2021-02-28 17:02建站优化464

引言这里总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,MySpace,Twitter,国内如优酷网等大型网站的技术架构。

1、WikiPedia 技术架构

互联网企业网站架构图

WikiPedia 技术架构图Copy @Mark Bergsma

来自wikipedia的数据:峰值每秒钟3万个

350 台 PC 服务器。

GeoDNSA :40-line patch for BIND to add geographical filters support to the existent views in BIND", 把用户带到最近的服务器。GeoDNS 在 WikiPedia 架构中担当重任当然是由 WikiPedia 的内容性质决定的--面向各个国家,各个地域。

负载均衡:LVS,请看下图:

互联网企业网站架构图

2、Facebook 架构

互联网企业网站架构图

Facebook 搜索功能的架构示意图

细心的读者一定能发现,上副架构图之前出现在此文之中:从几幅架构图中偷得半点海里数据处理经验。本文与前文最大的不同是,前文只有几幅,此文系列将有上百幅架构图,任您尽情观赏。

3、Yahoo! Mail 架构

互联网企业网站架构图

Yahoo! Mail 架构

Yahoo! Mail 架构部署了 Oracle RAC,用来存储 Mail 服务相关的 Meta 数据。

4、twitter技术架构

互联网企业网站架构图

twitter的整体架构设计图

twitter平台大致由twitter.com、手机以及第三方应用构成,如下图所示(其中流量主要以手机和第三方为主要来源):

互联网企业网站架构图

缓存在大型web项目中起到了举足轻重的作用,毕竟数据越靠近CPU存取速度越快。下图是twitter的缓存架构图:

互联网企业网站架构图

互联网企业网站架构图

关于缓存系统,还可以看看下幅图:

互联网企业网站架构图

5、Google App Engine技术架构

互联网企业网站架构图

GAE的架构图

简单而言,上述GAE的架构分为如图所示的三个部分:前端,Datastore和服务群。

前端包括4个模块:Front End,Static Files,App Server,App Master。

Datastore是基于BigTable技术的分布式数据库,虽然其也可以被理解成为一个服务,但是由于其是整个App Engine唯一存储持久化数据的地方,所以其是App Engine中一个非常核心的模块。其具体细节将在下篇和大家讨论。

整个服务群包括很多服务供App Server调用,比如Memcache,图形,用户,URL抓取和任务队列等。

6、Amazon技术架构

互联网企业网站架构图

Amazon的Dynamo Key-Value存储架构图

可能有读者并不熟悉Amazon,它现在已经是全球商品品种最多的网上零售商和全球第2大互联网公司。而之前它仅仅是一个小小的网上书店。ok,下面,咱们来见识下它的架构。

Dynamo是亚马逊的key-value模式的存储平台,可用性和扩展性都很好,性能也不错:读写访问中99.9%的响应时间都在300ms内。按分布式系统常用的哈希算法切分数据,分放在不同的node上。Read操作时,也是根据key的哈希值寻找对应的node。Dynamo使用了 Consistent Hashing算法,node对应的不再是一个确定的hash值,而是一个hash值范围,key的hash值落在这个范围内,则顺时针沿ring找,碰到的第一个node即为所需。

Dynamo对Consistent Hashing算法的改进在于:它放在环上作为一个node的是一组机器(而不是memcached把一台机器作为node),这一组机器是通过同步机制保证数据一致的。

下图是分布式存储系统的示意图,读者可观摩之:

互联网企业网站架构图

Amazon的云架构图如下:

互联网企业网站架构图

Amazon的云架构图

7、优酷网的技术架构

从一开始,优酷网就自建了一套CMS来解决前端的页面显示,各个模块之间分离得比较恰当,前端可扩展性很好,UI的分离,让开发与维护变得十分简单和灵活,下图是优酷前端的模块调用关系:

互联网企业网站架构图

这样,就根据module、method及params来确定调用相对独立的模块,显得非常简洁。下图是优酷的前端局部架构图:

互联网企业网站架构图

优酷的数据库架构也是经历了许多波折,从一开始的单台MySQL服务器(Just Running)到简单的MySQL主从复制、SSD优化、垂直分库、水平sharding分库。

1.简单的MySQL主从复制。

MySQL的主从复制解决了数据库的读写分离,并很好的提升了读的性能,其原来图如下:

互联网企业网站架构图

其主从复制的过程如下图所示:

互联网企业网站架构图

但是,主从复制也带来其他一系列性能瓶颈问题:

写入无法扩展

写入无法缓存

复制延时

锁表率上升

表变大,缓存率下降

那问题产生总得解决的,这就产生下面的优化方案。

2. MySQL垂直分区

如果把业务切割得足够独立,那把不同业务的数据放到不同的数据库服务器将是一个不错的方案,而且万一其中一个业务崩溃了也不会影响其他业务的正常进行,并且也起到了负载分流的作用,大大提升了数据库的吞吐能力。经过垂直分区后的数据库架构图如下:

互联网企业网站架构图

然而,尽管业务之间已经足够独立了,但是有些业务之间或多或少总会有点联系,如用户,基本上都会和每个业务相关联,况且这种分区方式,也不能解决单张表数据量暴涨的问题,因此为何不试试水平sharding呢?

3. MySQL水平分片(Sharding)

这是一个非常好的思路,将用户按一定规则(按id哈希)分组,并把该组用户的数据存储到一个数据库分片中,即一个sharding,这样随着用户数量的增加,只要简单地配置一台服务器即可,原理图如下:

互联网企业网站架构图

如何来确定某个用户所在的shard呢,可以建一张用户和shard对应的数据表,每次请求先从这张表找用户的shard id,再从对应shard中查询相关数据,如下图所示:

互联网企业网站架构图

是如何解决跨shard的查询呢,这个是个难点,据介绍优酷是尽量不跨shard查询,实在不行通过多维分片索引、分布式搜索引擎,下策是分布式数据库查询(这个非常麻烦而且耗性能)。

缓存策略

貌似大的系统都对“缓存”情有独钟,从内存数据缓存,但优酷表示没有用内存缓存,理由如下:

避免内存拷贝,避免内存锁

如接到老大哥通知要把某个视频撤下来,如果在缓存里是比较麻烦的

而且Squid 的 write() 用户进程空间有消耗,Lig) 读取文件到用户内存导致效率也比较低下。

但为何我们访问优酷会如此流畅,与土豆相比优酷的视频加载速度略胜一筹?这个要归功于优酷建立的比较完善的内容分发网络(CDN),它通过多种方式保证分布在全国各地的用户进行就近访问——用户点击视频请求后,优酷网将根据用户所处地区位置,将离用户最近、服务状况最好的视频服务器地址传送给用户,从而保证用户可以得到快速的视频体验。这就是CDN带来的优势,就近访问。

原文:

相关文章

tk域名解析教程(万网域名解析平台)

1、注册好域名后,登陆域名服务商网站,在个人帐号中心找到域名管理,点击打开。 不管是在那个网站注册的域名,后台基本上都是差不多的,都能找到域名管理。   2、在要解析的域名后面解析面板下点击登陆,进行...

常见的网站结构有哪几种(常见网站结构类型)

常见的网站结构有哪几种(常见网站结构类型)

链接结构一般分为两种: 一是“树状链接结构”,类似DOS的目录结构,首页链接指向一级页面,一级页面链接指向二级页面。立体结构看起来就像蒲公英。这样的链接结构浏览时,一级级进入,一级级退出。优点是条理清...

建一个网站需要多少会员才能维持基本运营?

建一个网站需要多少会员才能维持基本运营?

首先这样的问法并不科学,建一个网站,这个网站是什么类型的?建的那个网站要有多大规模,需要处理什么量级的访问量? 是一个电商网站?还是一个社交类的网站?还是一个工具类的网站?还是一个游戏类的网站? 其...

怎样创造一个网站卖东西(怎样创造一个QQ号)

怎样创造一个网站卖东西(怎样创造一个QQ号)

1、得看你是卖什么东西,要是普普通通的衣服,首饰,mp3什么的可以去阿里巴巴,淘宝,易趣上自己开个店就行,这样省时省力,就会建立非常专业的电子商务的平台,关键的是在那里你可以由非常安全的银行结算体制,...

如何区分域名等级(目前可以进行注册的域名网站)

如何区分域名等级(目前可以进行注册的域名网站)

如何判断域名是二级域名还是顶级域名?在这之前,我们还需要知道什么是域名?域名,全称网域名称(Domain Name)。它是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输...

视频创意灵感网站(创意不仅是靠灵感而发生的)

视频创意灵感网站(创意不仅是靠灵感而发生的)

谢邀! 做动态的PPT页面,例如,类似这样的: 经常会用到视频视频,所以,给大家给大家推荐几个我常用的高清视频素材网站: 1、Stock Footage for Free网址 / 一个超级良心的...

柳州正规网站制作公司(柳州网站建设)

柳州正规网站制作公司(柳州网站建设)

本篇文章给大家谈谈柳州正规网站制作公司,以及柳州网站建设对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 文章目录列表: 1、柳州有哪些好一些的IT企业吗? 2、柳州那里网站制作比较专业?...

网站推广费用一般多少钱(百度做网站推广的费用)

网站推广费用一般多少钱(百度做网站推广的费用)

网络推广一般是推广自己所销售产品或服务的公司网站,分为两种推广方式1.一般都是百度开户百度竞价推广,开户费用6000-1万之间每个地区开户费用不同,开户的费用部分直接会转成后期的竞价费用,具体话费费用...

评论列表

网店设置域名
网店设置域名
2021-02-28 17:27

起到了举足轻重的作用,毕竟数据越靠近CPU存取速度越快。下图是twitter的缓存架构图:关于缓存系统,还可以看看下幅图:5、Google App Engine技术架构GAE的架构图简单而言,上述GAE的架构分为如图所示的三个部分:前端,Datastore和服务群

电脑配置主板
电脑配置主板
2021-02-28 17:27

ort to the existent views in BIND", 把用户带到最近的服务器。GeoDNS 在 WikiPedia 架构中担当重任当然是由 WikiPedia 的内容性质决定的--面向各个国家,各个地域。

旅行网站设计
旅行网站设计
2021-02-28 17:27

沿ring找,碰到的第一个node即为所需。Dynamo对Consistent Hashing算法的改进在于:它放在环上作为一个node的是一组机器(而不是memcached把一台机器作为node),这一组机器是通过同步机制保证数据一致的。下图是

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。