`

Twitter的架构学习一:Twitter简介和业务逻辑简述

阅读更多

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

 

 

 

 

 

  • 大小: 22.9 KB
分享到:
评论

相关推荐

    系统架构学习 Twitter系统架构设计分析

    系统架构学习 参考文献 Twitter系统架构设计分析

    Twitter的核心架构设计分析.docx

    1. 网络架构设计:Twitter 的网络架构设计是基于自主设计和开源社区的网络技术,高效地提升集群性能,发布尽可能强的产品。 Twitter 的网络架构设计可以分为三个阶段:第一个阶段是将集群从第三方主机上迁出,第二个...

    Twitter系统架构设计分析.pdf

    为了支持这一核心业务逻辑,Twitter在初创阶段采用了以下几种数据结构和技术方案: - **Be-followed 表**:记录每位用户的所有关注者的ID。 - **Following 表**:记录每位用户关注的其他用户的ID。 **用户操作流程...

    用Java访问Twitter的API接口

    在描述中提到的"twitter4j-2.0.10.zip"是Twitter4J的一个版本,包含了该库的不同组件,如JAR文件(包含编译后的代码)、源码文件(用于查看和学习实现)以及构建和配置文件。 在压缩包的文件名称列表中,我们看到了...

    Twitter分享android推特分享

    通过不断学习和实践,你将能够熟练地应对这些问题,为用户提供流畅的Twitter分享体验。 最后,如果你在开发过程中遇到了具体的问题,可以参考Twitter的开发者文档,或者在社区中寻求帮助。持续更新和优化你的代码,...

    twitter学习教程.docx

    - **定义**:Twitter是一种允许用户在其社区内部发送和接收短消息(称为tweets)的信息服务。 - **社区组成**: - **Following**:指用户关注的好友列表。用户通过关注其他用户来构建自己的Twitter社区,并能查看被...

    Twitter api使用例子

    Twitter API 是Twitter公司提供的一种服务,允许开发者通过编程方式访问和操作Twitter平台的功能,如发布推文、获取用户信息、搜索推文等。本篇文章将围绕"Twitter API使用例子"这一主题,结合Java编程语言,深入...

    解剖Twitter Twitter系统架构

    解剖Twitter的系统架构,揭示Twitter使用的共享软件;了解Twitter如何处理多并发、冲突事件的处理方法;

    twitter分享

    twitter分享demo,步骤详解:http://blog.csdn.net/sjx19871225/article/details/8777951

    twitter&.zip

    1. **Twitter简介**:Twitter是一个全球性的社交媒体平台,用户可以发布150字符以内的短消息,称为“推文”。它提供了一个实时交流和信息分享的平台。 2. **Twitter账户创建**:如何创建个人或企业Twitter账户,...

    twitter API全集

    4. **流式API(Streaming)**:Twitter的流式API提供了一个实时数据流,允许开发者持续接收推文、用户活动或其他事件。这对于实时分析和监控非常有用。 5. **地理位置(Geolocation)**:使用`geocode`参数,开发者可以...

    Twitter 分享 标题+URL+图片

    在IT行业中,社交媒体平台的互动和分享功能是开发者必须掌握的关键技能之一,特别是在移动应用...提供的压缩包"TwitterShare"可能包含了实现这一功能的源代码示例,你可以参考学习并根据自己的项目需求进行调整和优化。

    Python-通过机器学习来检测Twitter机器人的R包

    【标题】"Python-通过机器学习来检测Twitter机器人的R包"揭示了使用Python和机器学习技术来识别Twitter上机器人账号的主题。在这个项目中,开发者可能利用Python的强大功能,结合R包,对Twitter数据进行分析,以区分...

    talon-for-twitter-android,我流行的android talon for twitter应用程序的材料设计版本,100%开源.zip

    通过探索和学习Talon for Twitter Android的源代码,开发者不仅可以提升Android应用开发技能,还能了解到如何将流行的设计理念和最佳实践应用于实际项目中。同时,参与开源项目也是提高自身影响力,建立个人品牌,...

    Twitter_新手使用教程 Twitter_新手使用教程

    - **定义**:Twitter是一种社交网络服务,允许用户向自己的社区发送和接收简短的消息(称为“推文”)。 - **社区构成**:Twitter社区主要由以下几个部分组成: - **关注者**:关注你的账户的人。 - **被关注者**...

    Ruby-取消Twitter上关注的每个人

    这段代码首先创建了一个`Twitter::REST::Client`实例,然后获取当前用户的关注者ID列表。由于Twitter API对每批请求的数量有限制,我们使用`each_slice(100)`分批处理取消关注的请求。最后,我们调用`unfollow`方法...

    Twitter API: 构建与运行 源代码

    This groundbreaking book provides you with the skills and resources you need to build web applications for Twitter. Perfect for new and casual programmers intrigued by the microblogging, Twitter API: ...

    twitter php

    本资源包聚焦于"twitter php",包含开源代码和学习资料,旨在帮助开发者深入理解和运用Twitter API。 首先,我们需要了解Twitter API的基础知识。Twitter API是一个允许开发者通过HTTP请求获取和发送Twitter数据的...

Global site tag (gtag.js) - Google Analytics