飘灵儿 发表于 2015-1-18 11:20:45

ASP.NET网站制作之PlentyOfFish.com .NET网站的又一传奇仓酷云

如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着net网页编程嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。PlentyOfFish(以下简称POF)是一家在美国广受接待的婚介结交网站,均匀每个月有4千5百万的会见者,天天有3万万的会见量(这是前一段工夫的数据了),但你切切想不到的是,这个被估值$1000000000的网站却只要一团体天天只干两小时活。
POF对网友是100%收费的,一切的支出来自于Google告白点击,不像中国有的婚介结交网站告白庞杂,POF只要一个告白通栏,别的没有任何弹出告白,感到十分的简便。它的乐成的关头要素大概就是在基础功效方面能很切合用户的必要,在UE方面做的也对照知心,同时也让用户可以安然承受这个收费网站的UI的丑恶和服务的不不乱性,而更加乐意经由过程这个平台来公布一些内容,share一些团体图片,经由过程这个网站来找靓妞大概帅哥dating了。
我们先临时不谈他在用户体验上是怎样胜出的,光是体系架构上就值得我们好好体会一下了,究竟一团体花那末少点工夫就能够保护云云复杂的体系,因而可知其架构是云云的复杂、天真、高效。那我们就复杂来剖析他的架构吧。

[*]用MicrosoftWindows操纵体系作为服务器
该网站接纳的是Windowsx64Server2003。接纳Windows的缘故原由是并非站长以为Windows合适POF,而是由于站长自己建站时分的手艺很差,完整不会利用Linux和Unix。他办这个网站的初志实际上是进修ASP。也由于云云,全部网站的尺度就是复杂、复杂、再复杂。关于年夜流量负载平衡的处置,站长今朝没有利用Windows的负载平衡NetworkLoadBalancing(NLB),他以为NLB不克不及坚持sessions形态。关于不克不及坚持sessions形态,倒也能够存储session形态到数据库,大概共享文件体系。8-12个NLB服务器能够配合放进一个farm,并且farm的数目也是没无限制的。然后将一个DNS轮转调剂战略(round-robinscheme)用在farm之间。实在如许的架构,也已经一度被用在POF——总计70个前端Web服务器(frontendwebservers),能够撑持30万人的并发会见。NLB也是一个不错的选择。可是如许的软件办理计划显得有点贵,并且很贫苦,终极站长选择了硬件来完成负载平衡义务。
[*]利用ASP.NET手艺
ASP.NET中的缓存功效完整没有启用。由于该网站的静态特征,常常还没等缓存贮存,数据就已改动或消散了。别的,该站点也没有效ASP.NET开辟甚么组件,一切的组件都是现成的,统统都以复杂动身。
[*]利用IIS作为Web容器
因为IIS限定了最年夜64000的毗连数,以是POF不能不增加负载平衡器来处置为数浩瀚的并发毗连。站长已经思索过增加第二IP,并接纳轮转调剂(Round-Robin)来办理会见量过年夜的成绩,可是如许太甚庞大,有悖于一团体的复杂办理,最初被保持了。实在用多个Web服务器就能够复杂办理。
[*]用AkamaiCDN来缓存网页
该站点部署了AkamaiCDN(网页缓存减速),天天处置约莫1亿幅图片的缓存减速。CDN的道理是将你站点部分的内容,分发到CDN服务商的服务器上,由于CDN服务商普遍散布的服务器能够加倍靠近终极用户的地区,如许速率就会更快。假设你以后的POF页面有8幅图片,每幅图片的下载必要100毫秒,那末光下载这些图片就必要花上一秒钟。以是分派这些图片到离用户更近的地区长短常需要的,并且CDN也必定水平减缓了分歧收集服务商之间的线路差别。固然,也不是一切的图片都接纳了CDN,一些小于2KB的图片仍是缓存于当地内存。大概由于部署了CDN,POF固然是外洋网站,但速率却十分快,与国际网站无二。有关CDN手艺,能够参考http://baike.baidu.com/view/21895.htm
[*]用FoundryServerIron来做负载平衡
POF接纳了网捷收集公司的Web互换器ServerIron,ServerIron可以无效地处置凌驾16,000,000个并发毗连,并且可以改良服务器负载平衡弛缓冲转换。正如上文所述,终极站长保持了NLB而接纳了ServerIron负载平衡,经由具体盘算以后,他发明部署ServerIron要比NLB廉价。实在也不但是POF,良多年夜网站都接纳ServerIron来处置TCP毗连pooling和bot主动监察。ServerIron除负载平衡还能做良多事变,因而仍是值得的思索的。
[*]数据库优化
3台SQLServer,接纳master-slave架构,两台卖力read操纵,master那台卖力写操纵。这个和myspace初期的背景数据库架构是一样,看来这类架构很盛行嘛。POF有一个次要的数据库,两个搜刮数据库。监测利用义务办理器来完成。已往,有些成绩会将数据库梗塞,实在这都是数据库本人的成绩,幸亏POF没用.net的library,找出成绩绝对简单一些。不外假设你利用了framework的良多层级,找出成绩便可能很坚苦了。关于POF而言,数据库不单单是不出成绩,还必要不乱和疾速。因为POF网站的静态特征,基础用不到缓存,以是站长几年来花了很年夜工夫,在良多细节上优化了数据库,让数据库的响应加倍敏捷。
[*]Memory和CPU
把比来常利用的图片间接放在内存中,以是内存会那末年夜;CPU设置也挺好,gzip是相称泯灭CPU盘算的。Markus说他碰着成绩基础上是IO操纵方面的瓶颈,很少是被.Netblock住。Markus在Session,Farm,和数据库反范式等良多方面都有很不错的履历,很值得我们进修和自创,更多的细节人人能够参考前面的链接的几篇文章。

[*]紧缩
一切的request数据都利用了gzip紧缩,也许泯灭了30%的CPU,可是下降了带宽本钱。西欧的带宽方便宜。
中国的经济情况延续向好,以是良多公司的IT部门都失掉了更多的预算,但这些预算被公道的利用了吗?这些预算常常被用来推销更好的服务器硬件,更新的操纵体系和数据库软件,另有形形色色的行业使用。倒不是说这些部署欠好,只是说我们的IT部署必定要以有用为起点,少做一些无关紧要的投资。我们要多向POF进修,实在不乱、疾速、便利才是制胜的关头。正如POF站长几回再三夸大的复杂哲学,一切庞大的工具都只管不往利用。
固然站长一入手下手的手艺一样平常,可是跟着建站工夫的加长,他如今也已是一个网站架构专家,他花了良多力量来优化数据库和保护体系,并且他也接纳了CDN来加速分歧地区的用户会见网站空间。不外实在该网站的搭建能够加倍公道,好比能够接纳S3来外包其图片存储,接纳更轻质化的操纵体系大概Web服务器等等。这些年来,相似于如许的倡议十分多,可是站长仍是保持了他的复杂战略,并且也回绝对主页面举行美工优化,由于他以为过剩的事情只会引来别人恶感,有用才是关头。可见,坚持复杂性,和延续勤奋的保护是服务器运转优秀的宝贝。

信任我们能够从POF上进修的工具另有良多,究竟该网站以一己之力,到达了史无前例的高度,净利润居然切近亲近了500多人的年夜型IT网站。POF的乐成一定有它的深入来由,不但是网站的全体的服务器和软件架构、良多细节的处置也一样值得我们自创。
我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。

柔情似水 发表于 2015-1-20 20:50:34

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!

精灵巫婆 发表于 2015-1-28 06:01:07

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

爱飞 发表于 2015-1-30 22:10:59

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

若天明 发表于 2015-1-31 06:49:58

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

愤怒的大鸟 发表于 2015-1-31 08:04:45

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

老尸 发表于 2015-2-6 18:39:17

现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。

飘灵儿 发表于 2015-2-11 11:35:01

是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。

小妖女 发表于 2015-2-26 15:18:35

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

小女巫 发表于 2015-3-8 15:46:12

那么,ASP.Net有哪些改进呢?

兰色精灵 发表于 2015-3-11 09:42:07

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

仓酷云 发表于 2015-3-12 16:35:32

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。

飘飘悠悠 发表于 2015-3-19 23:46:20

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

活着的死人 发表于 2015-4-6 19:10:09

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
页: [1]
查看完整版本: ASP.NET网站制作之PlentyOfFish.com .NET网站的又一传奇仓酷云