1.Twitter的简介
Twitter是非常著名的微博客网站,成立于2006年,至今用户数已经超过1000w,在奥巴马总统上台后,用户量急剧增长,随着用户数量的增加,Twitter的架构也发生了很大的变化,它的这些变化能够适应大用户量的访问,是值得大家学习的一种架构。
2.Twitter的业务介绍
1)业务
Twitter的业务比较简单,用户可以写短信(字长不允许超过140个),如果另外一个用户是该用户的follower,则用户的更新,他的follower可以实时地看到它的更新。
2)数据库表的设计
- User表 用户ID 姓名 登录名 密码 状态(是否在线)
- SMS表 短信ID UserID 短信正文 时间戳
- RelationShip表 UserID followingUserIDs followerUserIDs
用户关系表,存储了用户之间的关系:following和follower,following表示该用户跟踪了哪个用户,follower表示该用户被那些用户跟踪了。当用户有新的短信时,所有在线的follower可以实时(相对实时)收到它的更新。
3.Twitter的技术架构
笔者总结了一下Twitter架构的亮点:
1.在Web前端采用了Comet实现HTTP的长连接,由server直接push message到web 页面
2.在中间层大量采用了Cache-Page Cache,Fragment Cache,Vector Cache和Row Cache大大降低了server的负载。
3.实现了自己的Message Queue,Kestrel MQ是基于Memcached协议的由Scala语言开发的server