最近一个web项目的架构实例

在公司工作期间,最后一个项目是为我们的日本客户克隆一个twitter。 twitter是什么,关注web2.0的人肯定都知道了。

http://www.twitter.com/,在不到一年的时间里注册用户达到几百万。在去年开发的过程中偶尔有几次发现twitter的

服务器不能响应。我们动手开发的时候国内就有好几个克隆的站点出来了,比如说唧唧歪歪。我做了这个应用的架构,当

然我所做的就像每个技术人员所做的,也像我们小时候捏泥人,并不是说我捏的比别的小朋友好,只是拿来探讨和共享

自己的作品。

twitter的信息发布和google的搜索一样简单,那就是你只要回答此时what are you doing?的问题,而且信息正文不

超过140个字符。因为信息可以以短信方式在手机上传播,太长了有很多手机就没法。 twitter在应用上解决了一个人们

的大问题,所以才那么流行。别看信息短。在twitter这个系统内部有几个很重要的概念,那就是你发布信息,然后呢,

只有跟踪了你的用户才能看到你发布的信息。这可不像其它信息共享系统了。假如你跟踪了5个用户,那么这五个用户

发布的信息加上你发布的信息,它们会按照时间顺序排列,最新的在最前。 

      在当今社会,忙忙碌碌的人们,包括你,和自己在远方的亲人,朋友,同学变得联系越来越少。想想就算同一

个城市的大学同学,一年能打多少电话。如果你打电话,还怕在别人忙得时候给人家麻烦。而通过twitter,你只需

要注册个账户,然后打开你的主页,随便你想发的时候发布一条信息表示你在干什么。就像记录日志,你发布信息的

时候并不关心谁会看到你的信息。而你的朋友,亲人通过twitter可以跟踪你,当然要知道你的号。他们只要打开主页,

就能随时知道你最近在干什么。twitter大概是2分钟一次刷新,页面就是这样设置的,自动刷新。怪不得服务器经常吃不消。

      twitter还支持与IM和手机的绑定,例如你绑定你的msn账户到你的twitter账户,那么你不登陆到web,如果你的

msn是开的,你跟踪的用户发布的信息就会及时传递到你的msn上,你用msn也可以发信息到web,还可以用命令查询信息。

      所以呢,我们的客户就要求支持IM绑定,首先必须是MSN,接下来会是邮件,手机和twitter本身。其次是要考虑到

twitter本身的情况,设计上要支持大量并发访问,也就是吞吐量要上去。最后,就是要使用silverlight做前端,去年5,6月

份可只是silverlight的beta1啊。系统架构的任务就落到我身上。silverlight没见过也要了解了解,呵呵。

      ok,写到这儿就有事了,关于这个系统设计的问题在下一篇描述吧。我对我们日本客户还是比较佩服得。

就我的另一篇文章关于面试进入公司的回忆 里面所写的项目:  http://www.newsbbtv.com我本来认为是技术

上实现很难令人满意的项目,界面也不怎么吸引人。可是最终发布了以后访问量却大的惊人,令我以后不敢再用技术

人员的眼光来衡量一个应用。我所做的是保证软件在性能,健壮性,可靠性上达到最优,作为一个技术人员这是保证

用户不会放弃一个应用的关键。但是怎么达到那么大的访问量,的确是隔了山。事后回忆,其实日本人非常注重

每个地方细节上的方便性和人性化。比如newsbbtv.com上,你下载一个视频,如果时间有点长,你可以设置一个

你的邮箱,而且还可以设计朋友的邮箱,这可都是不用注册就能做的。 然后你就可以离开。等到视频下载完毕,

在本地服务器上可用的时候这个应用就会发邮件到你的邮箱,告诉你一个链接,你打开了就直接可以播放视频,

不用再去搜索一下。还有你朋友的邮箱,告诉他:你的朋友xxx(你的邮件地址)邀请你观看视频:

xxxx(当然是链接了)。

(ok,未完待续)。。。



原文地址:https://www.cnblogs.com/worldreason/p/1227052.html