分类: 系统运维
2008-12-29 12:28:26
SNS:Social Network Software,社会性网络框架体系。
社会性网络(社会网络,Social Networking:SN):是指个人之间的关系网络,这种基于社会网络关系系统思想的网站就是社会性网络网站(SNS网站)。
现在许多WEB2.0网站都属于SNS网站,如(IM)、交友、视频分享、、、、音乐共享等。
社会性网络的理论基础源于六度理论(,Six Degrees of Separation)和150法则(Rule Of 150)。
SNS的概念~是更多定义了业务,产品的形式。并不是特指某项技术(只要能现实具有SNS特性功能,技术所用的语言,数据库,服务器,没有硬向的规定。只按网站的大小,功能体量裁衣就行!)
例如:我要做SNS特性的功能,实现脚印,跟踪。
先评估~该网站同时能在线人数多少?再来确定需有多少服务器的为之服务。(这个具体我没做过实验~不好说同时在线几人~压力有多大?但以这次谈的工作,是地方的推广,假定人数PV,UV的量是几万级~,对么一台服务器~足够矣!!!!!!)
因为需要实现在线人数,其活动内容,并与他人分享。数据处理能力需要比较快和大。
那么原来~传统的客户端与服务器端,应用端与数据端的直接交互模式将不再适用。速度,反映时间都会达不到要求!
网上比较流行的大型web2.0互动网站设计方案
可以用开源软件作为架构的基础:Linux 2.6,Apache 2.0,MySQL,Perl 5.8,memcached,Squid等等
1, Mysql 切分,采用Innodb运行
MySQL数据库服务器, 连接方式采用的是每次查询都进行连接,而不是持久连接。数据库大多数是以InnoDB方式运行。解决扩展问题主要依赖于对数据库的切分。
2,动态Cache 服务器 -- Facebok.com,Yeejee.com,mixi.jp均采用开源分布式缓存服务器Memcache
服务器端的memcached作用很大,因为页面上往往需要引用大量的用户信息,好友信息,图片,文章信息,跨表,跨库操作相当多。这个时候就需要发挥memcached的作用了。
用大内存把这些不变的数据全都缓存起来,而当修改时就通知cache过期,这样应用层基本上就可以解决大部分问题了,只会有很小一部分请求穿透应用层,用到数据库。
(如果要大型的互动网站~做好缓存服务器是相当重要的。可以在多台机器上有缓存服务器,每个Cache Server
3,图片缓存和加速
图像主要有两部分:一部分是经常要使用到的,像用户头像,群组的头像等等,它们被Squid和CDN所缓存,命中率相对比较高;
另一部分是用户上传的大量照片,它们的个体访问量相对而言比较小,命中率也比较低,使用Cache不划算,
所以对于这些照片的策略是直接在用户上传的时候分发到到图片存储服务器上,
在用户访问的时候直接进行访问,当然图片的位置需要在数据库中进行记录,不然找不到放在哪台服务器上就郁闷了
4.运用Ajax技术做出很炫的客户端功能。
Ajax技术就不多说了,能提供网站很多很炫的展显和操作形式。优缺点都有。这要看产品人员设计时,考虑的实际功能而定,过犹不及就不好了!