今天我们的主角,是年净利润达到600万美金的网站: http://www.plentyoffish.com/(有人对其评估达上亿美金)。神奇的地方并不是这家网站有多么值钱,也不是这家网站有多么好的服务器架构——最令人惊奇的地方是,这么一家估值上亿美金的网站,全部员工只有1个人,现年30岁的Markus Frind。http://www.plentyoffish.com/是一家怎样的网站呢?可能很多国内的读者对PlentyOfFish(以下简称POF)还不太熟悉,POF是一家在美国广受欢迎的婚介交友网站,平均每月有4千5百万的访问者,每天有3千万的访问量。POF对网友是100%免费的,所有的收入来自于Google广告点击,不像中国有的婚介交友网站广告纷乱,POF只有一个广告通栏,此外没有任何弹出广告,感觉非常的简洁。
文章到了这里,一定已经有很多读者出于好奇登入了http://www.plentyoffish.com/,想看看这家网站到底有什么诱人之处。很多看了这家网站的朋友一定更加惊讶,因为这家网站实在很朴素,完全没有任何美工的概念,不过如果你免费注册了一个账号,就会发现通过POF交友的人是如此之多,美国、澳大利亚、英国、加拿大、甚至是中国都有大量的用户填写了交友信息,同时在线的人多达数万。该网站站名Plenty
of fish,很多鱼,源于谚语“很多鱼在海里:Plenty of fish in the sea。”意思就是我们所说的“天涯何处无芳草”,与婚介主题也蛮符合的。下面,我们看一下POF的具体资料。
目前,POF的月访问量(PV)达到了每月12亿次,每月有4千5百万用户访问,每天有3千余万次访问,(每秒500~600个页面访问)。依照compete公司的统计,POF在各个英语国家的网站排名都名列前茅:美国进入了前30位,加拿大前10位,英国前30位。
既然访问量如此之高,那么该网站是以怎样的架构应对的呢?
●Microsoft Windows:
该网站采用的是Windows x64 Server 2003。采用Windows的原因是并不是站长认为Windows适合POF,而是因为站长本人建站时候的技术很差,完全不会使用Linux和Unix。他办这个网站的初衷其实是学习ASP。也因为如此,整个网站的标准就是简单、简单、再简单。对于大流量负载均衡的处理,站长目前没有使用Windows 的负载均衡Network Load Balancing (NLB),他认为NLB不能保持sessions状态。对于不能保持sessions状态,倒也可以存储session状态到数据库,或者共享文件系统。8-12个NLB服务器可以共同放入一个farm,而且farm的数量也是没有限制的。然后将一个
DNS轮转调度策略(round-robin scheme)用在farm之间。其实这样的架构,也曾经一度被用在POF——总计70个前端Web服务器(front end web servers),可以支持30万人的并发访问。NLB也是一个不错的选择。但是这样的软件解决方案显得有点贵,而且很麻烦,最终站长选择了硬件来完成负载均衡任务。
●ASP.NET:
ASP.NET中的缓存功能完全没有启用。因为该网站的动态特性,往往还没等缓存储存,数据就已经改变或消失了。另外,该站点也没有用ASP.NET开发什么组件,所有的组件都是现成的,一切都以简单出发。
●IIS:
由于IIS限制了最大64000的连接数,所以POF不得不添加负载均衡器来处理为数众多的并发连接。站长曾经考虑过添加第二IP,并采用轮转调度(Round-Robin)来解决访问量过大的问题,但是这样太过复杂,有悖于一个人的简单管理,最后被放弃了。其实用多个Web服务器就可以简单解决。
●Akamai CDN:
该站点部署了Akamai CDN(网页缓存加速),每天处理大约1亿幅图片的缓存加速。CDN的原理是将你站点部分的内容,分发到CDN服务商的服务器上,因为CDN服务商广泛分布的服务器可以更加接近最终用户的地域,这样速度就会更快。假如你当前的POF页面有8幅图片,每幅图片的下载需要100毫秒,那么光下载这些图片就需要花上一秒钟。所以分配这些图片到离用户更近的区域是非常必要的,而且CDN也一定程度缓解了不同网络服务商之间的线路差异。当然,也不是所有的图片都采用了CDN,一些小于2KB的图片还是缓存于本地内存。可能因为部署了CDN,POF虽然是国外网站,但速度却非常快,与国内网站无二。
●Foundry ServerIron 负载均衡:
POF采用了网捷网络公司的Web交换器ServerIron,ServerIron 能够有效地处理超过 16,000,000个并发连接,而且能够改善服务器负载均衡和缓冲转换。正如上文所述,最终站长放弃了NLB而采用了ServerIron 负载均衡,经过详细计算之后,他发现部署ServerIron要比NLB便宜。其实也不只是POF,很多大网站都采用ServerIron来处理TCP 连接pooling和bot自动监察。ServerIron除了负载均衡还能做很多事情,因此还是值得的考虑的。
●数据库:
POF 有一个主要的数据库,两个搜索数据库。监测使用任务管理器来完成。过去,有些问题会将数据库堵塞,其实这都是数据库自己的问题,好在POF没用.net的library,找出问题相对容易一些。不过假如你使用了framework的很多层级,找出问题就可能很困难了。对于POF而言,数据库不仅仅是不出问题,还需要稳定和快速。由于POF网站的动态特性,基本用不到缓存,所以站长几年来花了很大功夫,在很多细节上优化了数据库,让数据库的相应更加迅速。
●服务器硬件:
2台Web服务器,都有2个Intel CPU Quad Core Intel Xeon X5355 2.66Ghz,8G内存,2块硬盘。此外还有3个数据库服务器,和一个容量为6TB的磁盘阵列。
我们学到了什么?
中国的经济环境持续向好,所以很多公司的IT部门都得到了更多的预算,但这些预算被合理的使用了吗?这些预算往往被用来采购更好的服务器硬件,更新的操作系统和数据库软件,还有各式各样的行业应用。倒不是说这些部署不好,只是说我们的IT部署一定要以实用为出发点,少做一些可有可无的投资。我们要多向POF学习,其实稳定、快速、便捷才是制胜的关键。正如POF站长一再强调的简单哲学,所有复杂的东西都尽量不去使用。
虽然站长一开始的技术一般,但是随着建站时间的加长,他现在也已经是一个网站架构专家,他花了很多力气来优化数据库和维护系统,而且他也采用了CDN来加快不同地域的用户访问网站空间。不过其实该网站的搭建可以更加合理,比如可以采用S3来外包其图片存储,采用更轻质化的操作系统或者Web服务器等等。这些年来,类似于这样的建议非常多,但是站长还是坚持了他的简单策略,而且也拒绝对主页面进行美工优化,因为他认为多余的工作只会引来他人反感,实用才是关键。可见,保持简单性,和持续勤劳的维护是服务器运行良好的法宝。
相信我们可以从POF上学习的东西还有很多,毕竟该网站以一己之力,达到了史无前例的高度,净利润竟然逼近了500多人的大型IT网站。POF的成功必然有它的深刻理由,不仅是网站的整体的服务器和软件架构、很多细节的处理也同样值得我们借鉴。
分享到:
相关推荐
无服务器架构的最佳实践全文共14页,当前为第1页。无服务器架构的最佳实践全文共14页,当前为第1页。 无服务器架构的最佳实践全文共14页,当前为第1页。 无服务器架构的最佳实践全文共14页,当前为第1页。 无服务器...
垂直行业网站服务器架构方案概要.doc
12 网购秒杀系统架构设计案例分析 13 大型网站典型故障案例分析 第4篇 架构师 14 架构师领导艺术 15 网站架构师职场攻略 16 漫话网站架构师 附录A 大型网站架构技术一览 附录B Web开发技术发展历程
一套网站架构完整方案 一、概 述 5 二、需求分析 5 2.1 异构系统 6 2.2 异构应用 8 2.3 异构数据 8 2.4 网站结构 9 2.5 内容海量 10 2.6 内容深度 10 2.7 服务深度 10 2.8 发布系统 11 2.9 网络安全 11 2.10 信息...
1.大型网站架构演化 2.大型网站架构模式 3.大型网站核心架构要素 4.网站高性能架构5.网站的高可用架构6.网站伸缩性架构7.网站的可扩展架构8.网站的安全架构9. 淘宝网的架构演化案例分析10. 维基百科的高性能架构...
初识无服务器架构 无服务器架构是云计算的一种运行模型,其含义是由云服务商动态地管理计算资源的分布。我们宝贵的计算资源的消费者本质上讲是函数执行。如果你用基于函数运行所消耗的内存和执行时间(四舍五入到...
16.7.7 库存接口访问量600w/分钟 343 16.7.8 微信接口调用量暴增 344 16.7.9 开启Nginx Proxy Cache性能不升反降 344 16.7.10 配送至读服务因依赖太多,响应时间偏慢 344 16.7.11 网络抖动时,返回502错误 346 16.7....
4、多机房部署架构下的4级缓存架构:大公司里真实的亿级流量高并发系统,都是采取了多个机房的部署架构,以实现高可用以及异地灾备。课程会重点讲解,在多机房部署架构下,如何设计和实现高并发系统的4级缓存架构。 ...
12大型 HTTP 服务器架构演进路线及思路(2)
超清晰的Oracle 12c数据库设计架构图
服务器硬件架构 从性能角度来看,处理器、内存和I/O这三个子系统在服务器中是最重要的,它们也是最容易出现性能瓶颈的地方。目前市场上主流的服务器大多使用英特尔Nehalem、Westmere微内核架构的三个家族处理器:...
分享课程——基于云原生架构构建亿级多语言电商平台设计到落地实现第一阶段,课程一共3个阶段,当前课程是第一阶段,其余2个阶段暂时没有录制完成。 本阶段内容:会基于云原生实现电商系统的大部分核心服务,包括:...
VMware服务器虚拟架构测试方案 日期 目 录 1. 测试目的 1 2. 测试人员及职责 2 2.1. 测试人员 2 2.2. 职责划分 3 3. 测试安排 4 3.1. 测试时间 4 3.2. 测试地点 4 3.3. 测试进度 4 4. 测试环境 5 4.1. 测试环境拓扑...
前台门户网站架构 设计方案 北京宽连十方数字技术有限公司 2010-7 目 录 1 设计思路 3 2 系统结构 3 3 网络规划及性能计算 3 3.1 网络架构 3 3.2 网络架构说明 4 3.2.1 采用双防火墙双交换机做网络冗余,保障平台...
L013老男孩高级架构师-2016最新亿级PV大型电商网站架构综合详解 L014老男孩高级架构师-架构师DNS实战 1015-老男孩高级架构师-架构师反向代理 1016老男孩高级架构师 keepalive nginx及面试题压力测试 017-老男孩高级...
6.1 IBM服务器虚拟化架构 18 6.2 IBM x3850 M2服务器特点 18 6.3 IBM DS4800存储 19 6.4 IBM虚拟化平台的优势 20 七、设计总结 22 7.1整合前后比较 22 7.2大大降低TCO 23 7.3 提高运营效率 24 7.4 提高服务水平 24 ...
电信系统架构设计文档 目录 1 介绍 2 1.1 目的 2 1.2 范围 2 1.3 依赖关系 2 2 系统架构 3 2.1 系统关联图 3 2.2 概要架构 4 2.3 功能架构 6 2.3.1 通用服务 6 2.3.2 接入服务及展现服务 7 2.3.3 内容及应用服务 8 ...
云和恩墨12c架构图
火龙果软件工程技术中心 学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点关注微软在SOA领域的相关指导和.NET社区的相关开源的解决方案,和大家一起来探讨如何在企业里实现SOA,期望有实施SOA经验...