大型web2.0互动网站设计方案

转载 2007年10月12日 09:57:00

分析mixi.jp and Yeejee.com:用开源搭建的可扩展大型SNS网站(一)

总概关键点:

1,Mysql 切分,采用Innodb运行

2,动态Cache 服务器 --

美国Facebok.com,中国Yeejee.com,日本mixi.jp均采用开源分布式缓存服务器Memcache

3,图片缓存和加速

 

Mixi目前是日本排名第三的网站,全球排名42,主要提供SNS服务:日记,群组,站内消息,评论,相册等等,是日本最大的SNS网站。Mixi从2003年12月份开始开发,由现在它的CTO - Batara Kesuma一个人焊,焊了四个月,在2004年2月份开始上线运行。两个月后就注册了1w用户,日访问量60wPV。在随后的一年里,用户增长到了21w,第二年,增长到了200w。到今年四月份已经增长到370w注册用户,并且还在以每天1.5w人的注册量增长。这些用户中70%是活跃用户(活跃用户:三天内至少登录一次的用户),平均每个用户每周在线时间为将近3个半小时。

下面我们来看它的技术架构。Mixi采用开源软件作为架构的基础:Linux 2.6,Apache 2.0,MySQL,Perl 5.8,memcached,Squid等等。到目前为止已经有100多台MySQL数据库服务器,并且在以每月10多台的速度增长。Mixi的数据库连接方式采用的是每次查询都进行连接,而不是持久连接。数据库大多数是以InnoDB方式运行。Mixi解决扩展问题主要依赖于对数据库的切分

首先进行垂直切分,按照表的内容将不同的表划分到不同的数据库中。然后是水平切分,根据用户的ID将不同用户的内容再划分的不同的数据库中,这是比较通常的做法,也很管用。划分的关键还是在于应用中的实现,需要将操作封装在在数据层,而尽量不影响业务层。当然完全不改变逻辑层也不可能,这时候最能检验以前的设计是否到位,如果以前设计的不错,那创建连接的时候传个表名,用户ID进去差不多就解决问题了,而以前如果sql代码到处飞,或者数据层封装的不太好的话那就累了。

这样做了以后并不能从根本上解决问题,尤其是对于像mixi这种SNS网站,页面上往往需要引用大量的用户信息,好友信息,图片,文章信息,跨表,跨库操作相当多。这个时候就需要发挥memcached的作用了,用大内存把这些不变的数据全都缓存起来,而当修改时就通知cache过期,这样应用层基本上就可以解决大部分问题了,只会有很小一部分请求穿透应用层,用到数据库。Mixi的经验是平均每个页面的加载时间在0.02秒左右(当然根据页面大小情况不尽相似),可以说明这种做法是行之有效的。Mixi一共在32台机器上有缓存服务器,每个Cache Server 2G内存,这些Cache Server与App Server装在一起。因为Cache Server对CPU消耗不大,而有了Cache Server的支援,App Server对内存要求也不是太高,所以可以和平共处,更有效的利用资源。

图片的处理就显得相对简单的多了。对于mixi而言,图像主要有两部分:一部分是经常要使用到的,像用户头像,群组的头像等等,大概有100多GB,它们被Squid和CDN所缓存,命中率相对比较高;另一部分是用户上传的大量照片,它们的个体访问量相对而言比较小,命中率也比较低,使用Cache不划算,所以对于这些照片的策略是直接在用户上传的时候分发到到图片存储服务器上,在用户访问的时候直接进行访问,当然图片的位置需要在数据库中进行记录,不然找不到放在哪台服务器上就郁闷了。

国内领先的SNS网站-采用类似的系统架构,在下面的文章会进行分析对比。这是稳定与典型的大型互动网站系统架构,web2.0的创业者,在设计网站时,可以参考参考,少走弯路。

基于Java的大型网站设计方案

第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅通过消息传递来通信并协调行动。 分布式系统的意义: 升级单机处理能力的性价比越来越低单机处理能力存在瓶颈处...
  • liunian02050328
  • liunian02050328
  • 2018-01-04 15:14:39
  • 231

大型web2.0互动网站设计方案:分析mixi.jp and Yeejee.com:用开源搭建的可扩展大型SNS网站

原贴:http://blog.csdn.net/jim_yeejee/archive/2007/07/18/1697363.aspx大型web2.0互动网站设计方案分析mixi.jp and Yeej...
  • chinalinuxzend
  • chinalinuxzend
  • 2007-10-11 11:20:00
  • 1292

基于Java技术的大型网站架构设计方案

基于Java技术的大型网站架构设计方案 笑游江湖 发表于 2014-03-16 16:56:00 | 分类标签: 网站架构 JAVA 高并发 1、Web层 主体架构可以基于 Struts 1...
  • JackieLiuLixi
  • JackieLiuLixi
  • 2014-05-23 17:24:37
  • 16146

20个具有代表性的web2.0网站配色

找网站的摸板找到了这个东西,还不错,颜色看起来都挺舒服的html>head>    title>a href="/default.asp?tag=Web2%2E0" target="_blank">w...
  • ccp5780199
  • ccp5780199
  • 2007-09-16 14:28:00
  • 806

互联网、人、web2.0

互联网、人、web2.02006.03.21 在互联网的风起云涌中有没有规律或者本质性的踪迹可寻呢? 这是研究互联网、经营互联网和正在计划在互联网上掘金的人都很关心的。我对互联网发展的根本与趋势的看...
  • wlpwind
  • wlpwind
  • 2006-03-26 08:28:00
  • 691

大型会议现场互动(微信墙、摇一摇等)技术架构实现分析

原文链接点击打开链接 本文在我们分析互动系统常见的系统实现问题,希望能够起到抛砖引玉的作用,对会议举办方、会议策划人员公司在根据实际情况,选择互动产品有所帮助。 目前会议、会展、活动会场越...
  • Monlance
  • Monlance
  • 2016-12-21 14:28:52
  • 2421

Web2.0盈利模式的思考

最近“Web2.0”这个词依旧在互联网中很火暴,不知道什么时候哪个网站就跳出来:“我融了多少百万的美金”,甚至好几位以前的同事,两年不见,大家碰面的时候,他们也告诉我融了几百万美金的时候,我会觉得:疯...
  • newhappy2008
  • newhappy2008
  • 2006-08-21 22:10:00
  • 1558

常见Web2.0网站配色

常见Web2.0网站配色
  • hztgcl1986
  • hztgcl1986
  • 2007-06-21 14:49:00
  • 885

什么是WEB2.0?

什么是WEB2.0?   要理解WEB2.0,先得看WEB的历史。 World Wide Web,简称WWW,是英国人TimBerners-Lee 1989年在欧洲共同体的一个大型科研机构任职时发明的...
  • henry365
  • henry365
  • 2005-11-18 16:51:00
  • 493

10个设计最经典的web2.0网站

10个设计最经典的web2.0网站
  • cyp403
  • cyp403
  • 2006-08-14 14:22:00
  • 1634
收藏助手
不良信息举报
您举报文章:大型web2.0互动网站设计方案
举报原因:
原因补充:

(最多只允许输入30个字)