欢迎来到合肥浪讯网络科技有限公司官网
  咨询服务热线:400-099-8848

大型网站架构不得不考虑的10个问题

发布时间:2019-06-06 文章来源:本站  浏览次数:2542

这儿的大型网站架构只包括高互动性高交互性的数据型大型网站,根据咱们众所周知的原因,咱们就不谈新闻类和一些依靠HTML静态化就能够完成的架构了,咱们以高负载高数据交换高数据流动性的网站为例,比如国内,开心网等相似的web2.0系列架构。咱们这儿不评论是PHP仍是JSP或许.NET环境,咱们从架构的方面去看问题,完成言语方面并不是问题,言语的优势在于完成而不是好坏,不论你选择任何言语,架构都是有必要要面临的。

这儿评论一下大型网站需要留意和考虑的问题

1、海量数据的处理

众所周知,关于一些相对小的站点来说,数据量并不是很大,select和update就能够处理咱们面临的问题,本身负载量不是很大,最多再加几个索引就能够搞定。关于大型网站,每天的数据量或许就上百万,假如一个规划不好的多对多联系,在前期是没有任何问题的,可是随着用户的增加,数据量会是几许级的增加的。在这个时分咱们关于一个表的select和update的时分(还不说多表联合查询)的成本的十分高的。

2、数据并发的处理

在一些时分,2.0的CTO都有个尚方宝剑,便是缓存。关于缓存,在高并发高处理的时分也是个大问题。在整个应用程序下,缓存是大局同享的,然而在咱们进行修正的时分就,假如两个或许多个恳求同时对缓存有更新的要求的情况下,应用程序会直接的死掉。这个时分,就需要一个好的数据并发处理策略以及缓存策略。

别的,便是数据库的死锁问题,或许平常咱们感觉不到,死锁在高并发的情况下的呈现的概率是十分高的,磁盘缓存便是一个大问题。

3、文件存贮的问题

关于一些支撑文件上传的2.0的站点,在庆幸硬盘容量越来越大的时分咱们更多的应该考虑的是文件应该怎么被存储而且被有用的索引。常见的计划是对文件依照日期和类型进行存贮。可是当文件量是海量的数据的情况下,假如一块硬盘存贮了500个G的琐碎文件,那么维护的时分和使用的时分磁盘的Io便是一个巨大的问题,哪怕你的带宽足够,可是你的磁盘也未必呼应过来。假如这个时分还涉及上传,磁盘很简单就over了。

或许用raid和专用存贮服务器能处理眼下的问题,可是还有个问题便是各地的访问问题,或许咱们的服务器在北京,或许在云南或许新疆的访问速度怎么处理?假如做分布式,那么咱们的文件索引以及架构该怎么规划。

所以咱们不得不供认,文件存贮是个很不简单的问题

4、数据联系的处理

咱们能够很简单的规划出一个符合第三范式的数据库,里边布满了多对多联系,还能用GUID来替换INDENTIFY COLUMN 可是,多对多联系充满的2.0时代,第三范式是第一个应该被抛弃的。有必要有用的把多表联合查询降到最低。

5、数据索引的问题

众所周知,索引是提高数据库效率查询的最方面最廉价最简单完成的计划。可是,在高UPDATE的情况下,update和delete付出的成本会高的无法想想,笔者遇到过一个情况,在更新一个聚焦索引的时分需要10分钟来完成,那么关于站点来说,这些基本上是不可忍受的。

索引和更新是一对天生的冤家,问题A,D,E这些是咱们在做架构的时分不得不考虑的问题,而且也或许是花费时刻最多的问题,

6、分布式处理

关于2.0网站因为其高互动性,CDN完成的效果基本上为0,内容是实时更新的,咱们常规的处理。为了确保各地的访问速度,咱们就需要面临一个绝大的问题,便是怎么有用的完成数据同步和更新,完成各地服务器的实时通讯有是一个不得不需要考虑的问题。

7、Ajax的利害剖析

成也AJAX,败也AJAX,AJAX成为了干流趋势,突然发现根据XMLHTTP的post和get是如此的简单。客户端get或许post 到服务器数据,服务器接到数据恳求之后返回来,这是一个很正常的AJAX恳求。可是在AJAX处理的时分,假如咱们使用一个抓包东西的话,对数据返回和处理是一望而知。关于一些计算量大的AJAX恳求的话,咱们能够构造一个发包机,很简单就能够把一个webserver干掉。

8、数据安全性的剖析

关于HTTP协议来说,数据包都是明文传输的,或许咱们能够说咱们能够用加密啊,可是关于G问题来说的话,加密的进程就或许是明文了(比如咱们知道的QQ,能够很简单的判断他的加密,并有用的写一个跟他相同的加密和解密方法出来的)。当你站点流量不是很大的时分没有人会在乎你,可是当你流量上来之后,那么所谓的外挂,所谓的群发就会接踵而来(从qq一开始的群发可见端倪)。或许咱们能够很的意的说,咱们能够选用更高等级的判断甚至HTTPS来完成,留意,当你做这些处理的时分付出的将是海量的database,io以及CPU的成本。关于一些群发,基本上是不或许的。笔者已经能够完成关于百度空间和qq空间的群发了。咱们愿意试试,实际上并不是很难。

9、数据同步和集群的处理的问题

当咱们的一台databaseserver不堪重负的时分,这个时分咱们就需要做根据数据库的负载和集群了。而这个时分或许是最让人困扰的的问题了,数据根据网络传输根据数据库的规划的不同,数据延迟是很可怕的问题,也是不可避免的问题,这样的话,咱们就需要通过别的的手段来确保在这延迟的几秒或许更长的几分钟时刻内,完成有用的交互。比如数据散列,切割,内容处理等等问题

10、数据同享的途径以及OPENAPI趋势

Openapi已经成为一个不可避免的趋势,从google,facebook,myspace到国内校内,都在考虑这个问题,它能够更有用的留住用户并激起用户的更多的兴趣以及让更多的人帮助你做最有用的开发。这个时分一个有用的数据同享渠道,数据敞开渠道就成为必不可少的途径了,而在敞开的接口的情况确保数据的安全性和性能,又是一个咱们有必要要认真思考的问题了

上一条:在线广告及其在网页规划中...

下一条:读“规划的3个C”之构图...