Tag Archives: 豆瓣

学习豆瓣好榜样–网站架构

这次的 QCon 会议,《豆瓣网技术架构的发展历程》这个议题差不多是最受关注的。洪强宁在演讲开始告诫大家期望值不要太高,我还是相信不会有人觉得失望的。

豆瓣网首席架构师洪强宁在演讲

先说几句题外话,整个演讲听下来,我们会发现豆瓣在发展的过程中也是有点弯路,这些是一个网站发展过程中的宝贵财富,能把自己有周折的地方大大方方的拿出来,是难能可贵的事情。尽管豆瓣批露了很多架构细节出来,也不会(也不可能)有哪个公司一拿到这些东西,就能照猫画虎再做一个豆瓣并且超过豆瓣。从某种程度上来说这体现了豆瓣同学们的气度,这是令国内大多数公司汗颜的。很多公司只愿索取,而不愿奉献哪怕一点点出来,用这样封闭的心态对待技术其实是小家子气,守财奴的思维。技术只有为更多人所用才是大道。

议论说完,再来叙述。写点对豆瓣架构的体会。戏法人人会变,各有巧妙不同。有些东西大家都在用(Nginx),但是有人的用得好,有人用了比不用还差。所以,需要逐渐总结,改进。学习别人的架构设计,不是要照搬,而是借鉴其思想。

技术的选择

一直以来,豆瓣在技术上都给人很前卫的感觉,看起来好像什么新用什么,其实是不是的,他们一直是”用已掌握的技术解决问题”,现有的东西如果够用,那么就没必要一定迁移到新的上面去,而转换往往是为了解决当前问题。另外,换用新的东西,要有足够的驾驭能力,从演讲中得知,豆瓣曾有几次在临上线前发现基础库的Bug(比如 Libmemcached 的一致性哈希相关的Bug),技术团队能在第一时间有进行修复并且提交给开源社区。否则的话,就变成了一种错误决策了。

磁盘转速

小话题。如果可能,直接买 15000 转的磁盘好了。10000 转的磁盘可能省钱,但这东西部署了之后几乎就不太可能升级。所以,如果是初创公司,我的建议就是买高速磁盘,因为业务如果发展快了的话,先前对机器的定位也可能发生变化。

杜绝远程 I/O

在普通的 TCP/IP 网络的环境下,不要进行远程数据写入操作。跨网络操作的延时看似没什么大不了的,但一旦达到临界点就回天乏术。这个事情基本是不撞南墙不回头,有的技术人员总要亲身体验一把才肯罢休。

持续保持 URL 友好风格

演讲中有多次提到一致性 URL ,其实体现了豆瓣对 URL Rewrite 的重视,结构调整,或者应用程序变化的时候,URL 最好做到”用户友好”的。这算是”软技术”,但是应该加以最大的重视。

数据库复制延迟问题

对于 MySQL 复制的环境,如果Slave 上有读取操作,那么有些情况下可能因为 Master 和 Slave 节点数据不一致对用户造成困惑。如果从一致性的角度上考虑,其实也不复杂:,只需要对”知道数据发生了变化的用户”提供一致性就行了(基本上就是发起变更的用户),不知道数据发生变化的用户对数据的不一致有一定的”容忍程度”,当然说着简单,实现起来还是需要技巧和精巧的。

大量小文件同步问题:Merkle tree

关于大量小文件的同步问题,很多上了规模的网站都会遇到,如果设计得不好或者是比较偷懒,用传统的办法(比如 rsync 之类的老模式)很容易触发问题,也浪费资源。DoubanFS 是用 Merkle tree(Hash Tree)的方式进行数据同步的。对这个问题的具体描述可以参见《大量小文件的实时同步方案》。Merkle Tree 是个很精巧的思路,ZFS 在用(refer),Amazon Dynamo 系统也在用。

不会一会儿又有人留言说:我们早就采用这个思路了…… 我这里预先来句回答:拜托,你早点共享啊?

EOF

完整的 PPT 过几天 InfoQ 中文站会发布,我这里就不掠美了。

参观 798 工厂与豆瓣

昨天累个半死,所以今天中午才被喊起来–办理续住手续。看看下午没什么事,这个的地方离著名的 798 艺术区又非常近,问明白怎么走,简单带点东西就出发了。
我从酒仙桥 4 号的入口进去的,在里面大约转了 4 个多小时,艺术啊,就是艺术,拍了大约 100 多张照片(传到我的Flickr上了,拍照水平很差)。原来北京比较奇怪的东西全在这里呢 :) 有的艺术品创意其实也很一般,看到很多拿毛泽东做主题的。下午 1 点多的时候跑到沈家菜馆吃了点东西,老板很随和。菜也还算不错。798 里面老外几乎比中国人还多。
大约快 5 点相机也没电了,只得收兵,腿也走的有点瘸,刚好这时候收到 JavaEye 网友 Ranxiang 给我发来的消息,看看时间,估计我赶过去也来不及了,只得说声抱歉,Ranxiang 和我开玩笑说莫非豆瓣比我们更有吸引力? 还真提醒了我,豆瓣不是在 797 么? 一看我的位置正好是酒仙桥 2 号,797 啊,问一下大门口的保安,就是我旁边的这栋楼。不过这个办公楼的保安态度可不咋地,登记完了走到三楼,果真是豆瓣,敲敲门,说明来意,”我是豆瓣用户,来参观参观”,他们说没问题啊,也不管我这仪容不整行迹可疑就让我进来了。我说自己是那个写 dbanotes.net 的,他们居然都有印象,又感到荣幸一回,呵呵。因为是周六,只有两个人在公司,brant (ID 应该没搞错吧,我这个人出了名的记不住ID)与 xyb, 不得不说一下,brant 的头型简直太帅了!
豆瓣的办公室的确很特别,不愧是在艺术区,主办公室房间中央几张办公桌在一起,没有玻璃隔断,这还是几年来看到的第一个没有隔断的办公室。墙上的玻璃板画着不少东西,相机没电,没能拍照。另外一间估计是会客室,备有不少小食品饮料什么的,问我喝啥,冰镇的可乐最适合了。三个人坐在一起开聊,当然具体内容就不能在这里全部透漏啦,可以说的是从我个人的角度提了几个建议,像什么”打印书单”这个功能(估计已经有很多人提过这个建议了吧),还问了几个比较我关心的问题,如一直疑惑的”豆瓣九点“几个频道都是干啥的,现在又知道了几个。谁想都知道,请留言 :)
6 点多的时候,车东也过来了,又聊了好一阵,一次思维大碰撞。后来我和车东下去吃饭了,而 xyb 与 brant 好像还有事情要做,又让我感觉很不好意思–这不是耽误他们时间来着。
短暂而又愉快的豆瓣拜访。
附上几张我今天在 798 拍的照片(拍照这事情我不在行,大家凑合着看看):
798工厂 138
798工厂 011
798工厂 005
798工厂 058
798工厂 127
798工厂 032
EOF

豆瓣推出新功能: 我上

在网志年会上,阿北透露豆瓣将在最近有新的东西推出,不过当时没有刨根问底,只是问他会不会推出针对电子产品(比如数码相机,笔记本)这样的频道,得到的回答是否定的。今天看到新华网对阿北的访谈,阿北透露了豆瓣新功能”我上”:

豆瓣网在推新的功能,以前有很多读书、电影、音乐,我看、我听,我们把它们合并起来,有空间能够放“我上”。

这个产品是”个人空间”还是”Digg”?

同时我们在做一些新东西,近期有一个栏目“我上”将推出,是博客推荐,从中你可以发现一些不是很知名,但很有意思的东西。

Blog 推荐,似乎是有点 Digg 的味道。目前国内还真没有一个很出色模仿 Digg 的站点,更容易切入。
图书、电影、音乐、旅游 + Blog,给每一个用户感兴趣的东西一个展示的机会 ?
豆瓣存在给每一个客体产生微内容的平台的可能。
Updated:
中午向朋友推荐的时候还不见这个功能,现在已经推出来了。见图:
豆瓣的新功能:我上
试用了一会儿,发现这个功能对于 Blog 拥有者来说,更有粘度
EOF

网志年会报道人物篇之一

我没有带相机去,旧的在修,新的没有买,很可惜,没有照片上传。大家可以看 Flickr 上年会的照片
上午会议刚开始的时候椅子不够,很多人都坐在地上。最初无线网络还算顺畅,到了中午几乎不可以用了。
会议各个专题的演讲效果不太好,音响效果太糟糕是主要原因,动不动就没声了。在最后面的人都活跃了起来,在走廊中互相交换名片,聊了起来。
车东给我介绍认识了豆瓣的杨勃(阿北)。我好奇最近豆瓣似乎很是低调,原来这段时间他们要在 Team Building ,阿北透露豆瓣将在最近有新的东西推出。讨论了一下关于”模仿”豆瓣的现象,用阿北的话说,豆瓣自己都在积极寻求变化…豆瓣操作系统都是自己编译的,其他人怎么模仿? 我还了解到豆瓣的服务器都是自己攒的,第一台服务器只花了 6000 块钱,现在的每台服务器几乎都能把性能发挥到极限,”芯片级”, 通过这个过程也积累了大量的 “Skill”…
认识了 抓虾的徐易容,很有亲和力的一个家伙,一直想认识一下抓虾背后的这些人,这次了了一个心愿。和 Virushuo , Tinyfool 一起聊抓虾,我提了一点小建议(我这个人就是馊主意多)。主要是针对抓虾使用页面框架的问题,以及关于认领属于自己的 Blog 的问题,如果抓虾可以确定某个 Blog 是属于某个用户的,这样这个用户就可以设置自己的 Blog 属性,比如标签、Blog 元数据等信息。不光是我,其他人也有这样的需求。或许不久之后就会看到这样的功能.
人物好多,未完待续…