专访新浪微博技术经理杨卫华:微博产品应用开发谈

原创
开发 前端
对于开发人员而言,微博产品的开发与传统的Web应用开发有哪些不同?在开发与实现方面会遇到哪些技术难点?如何走进微博应用的开发?带着这些问题,51CTO记者在上周举行的Qcon 2010上有幸采访到新浪的产品部技术经理,主要负责新浪微博开发的杨卫华先生。

【51CTO独家报道】随着新浪等门户网站对微博产品的推出,越来越多的人开始使用这种新的Web2.0应用方式,微博客的产品形式也受到越来越多的关注。

对于开发人员而言,微博产品的开发与传统的Web应用开发有哪些不同?在开发与实现方面会遇到哪些技术难点?如何走进微博应用的开发?带着这些问题,51CTO记者在上周举行的Qcon 2010上有幸采访到新浪的产品部技术经理,主要负责新浪微博开发的杨卫华先生。 

新浪产品部技术经理杨卫华先生接受51CTO记者采访 
杨卫华先生接受51CTO记者采访

微博开发与传统Web开发

微博是Web2.0的一种核心应用,与博客、论坛等传统的Web 2.0产品相比,博客和论坛更关注内容到保存和展现,而微博除了具有上述的功能外,还具有自己的特点,在采访中,杨卫华先生指出,微博产品具有实时性、关注与被关注、内容聚合三个特点。

实时性:微博的消息传送需要更小的延迟,发布的消息用户可以及时的看到自己所关注的信息;博客、论坛的实现形式延迟性较大,并不适合微博的技术特点。

关注与被关注:微博用户的主要应用形态聚集在关注与被关注者消息的实时传递,这将设计到大量关注着的内容聚合和展示。

内容聚合:所有关注者的消息会聚合呈现在用户页面,而且保证最佳的实时性。

在具体的技术开发中,一些主要的技术难点将围绕着这三个特点展开。微博产品中,用户所关注的多个对象的实时聚合展示,在一些应用场景下,将导致下面的问题——访问峰值。

微博开发的技术难点——访问峰值

一般Web应用的访问量是可以预估的,比如博客或CMS系统,通过一些流量监控空间和用户行为分析,可以预先估计到用户访问量的时段特点。但微博不同,作为一个信息传播平台,在一些突发事件、热门事件等发生时,会有大批量的用户参加进来,系统会随时遇到访问的峰值。

访问峰值的问题,新浪主要从以下三个方面来解决

硬件:面对微博随时可能发生的高访问量,新浪首先从硬件基础实施和网络环境上做保障,在全国各省中心城市的一线机房部署服务器,保证时时畅通;

开发:在程序实现上,新浪微博对功能代码严格把关,并在上线之前进行充分的压力测试,找出性能瓶颈并解决。

另外,对图片、JS等静态资源新浪微博采用CDN的方式来分担流量。

海量数据处理

随着Web应用的发展,越来越多的网站遇到海量数据的存储和处理方面的问题。微博产品更是如此。随着应用时间和用户的增长,微博的消息数量也会成指数级的增长,同样也会面临到海量数据存储的问题。

目前,海量数据存在两种解决方案,传统的关系数据库和NoSQL。

在关系数据库中,通过sharding的手段将数据分散到多台服务器上。对于微博这种产品,由于话题、热门的讨论是有时段的,可以通过时间来分片进行sharding。

还有一种是NoSQL的方法。目前知名微博网站Twitter已经在尝试Cassandra分布式数据库,对于数据规模增长非常快的网站,NoSQL的Key-Value存储形式可以保证很好的伸缩性和高可用性,产品内部可以实现不停机的修改能力。

在之前对豆瓣网首席架构师洪强宁先生的采访中,他也强调了NoSQL对大数据量Web2.0网站的好处

走进微博应用开发

目前Twitter的70%以上的流量都来自第三方API的应用,在采访中,杨卫华先生透露,新浪也正在计划开放平台,希望更多应用开发者写应用;希望更好的创意可以在新浪微博体现。

对于传统的Web开发者,该如何走进微博应用的开发呢?

杨卫华先生说,做微博应用开发,一方面,要找一个好的创意,对应用的形式和内容有一个好的把握。国外微博平台有很多好的应用,但借鉴之外,还要注意中国用户的使用习惯。

第二点就是习惯与开放平台和API的使用。杨卫华先生推荐了新浪云开发平台(SAE),这是新浪推出的云计算平台,目前还处于Beta版。使用新浪云平台,可以方便的对系统进行扩展,不需要担心硬件和设备。

关于CDN:CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。

 

关于NoSQL:请参考51CTO之前的报道《对SQL说不!NoSQL的数据库技术革命》和《探寻关系数据库和ORM的最佳替代者

关于Cassandra:Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。

关于SAE:新浪的云开发平台,类似Google的GAE,提供PHP语言的支持,目前还处于Beta阶段。

点击第二页查看杨卫华先生访谈视频#p#

访谈视频

 

 

【编辑推荐】

  1. 专访豆瓣网首席架构师洪强宁:Python,简单的力量
  2. 专访Twitter工程师:SNS产品发展途中的那些事儿
  3. 专访豆瓣网首席架构师洪强宁:BeansDB与NoSQL的应用与发展
  4. 专访邓草原:从对象和函数式到现实世界的项目

 

 

 

责任编辑:佚名 来源: 51CTO.com
相关推荐

2013-10-10 09:05:26

新浪微博Redishadoop

2013-11-29 12:34:50

敏捷运维新浪微博许杨毅

2013-07-10 14:15:38

php新浪微博

2011-09-09 11:09:26

Web

2011-12-08 16:31:43

新浪微博开放平台

2013-05-27 09:52:35

Android开发移动开发移动应用

2017-04-15 21:36:05

微服务新浪微博WOT

2011-12-08 16:51:55

新浪微博开放平台

2015-09-24 18:08:50

微博架构架构演进架构

2013-07-01 18:34:47

个推案例新浪微博

2015-01-21 15:28:16

Android源码新浪微博

2011-12-08 16:10:18

2012-07-12 15:00:26

漏洞账号错乱新浪微博

2014-01-21 14:17:50

微博产品设计

2017-04-27 11:15:05

新浪微博LNMP架构侯青龙

2011-12-20 09:54:43

2011-05-25 09:30:45

产品经理

2015-12-21 09:39:31

2011-07-26 09:58:24

2011-08-30 14:48:02

点赞
收藏

51CTO技术栈公众号