关于有道阅读的beta技术沙龙
作者:virushuo 发表于 2009-03-09 01:03 最后更新于 2009-03-20 15:03
版权声明:按照by-nc-sa的cc协议可转载,拒绝采用“独家” 授权媒介(含网站和平面媒体)转载、引用、链接,除非获得本人许可。转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://blog.devep.net/virushuo/2009/03/09/betasalon_youdaoreader.html
版权声明:按照by-nc-sa的cc协议可转载,拒绝采用“独家” 授权媒介(含网站和平面媒体)转载、引用、链接,除非获得本人许可。转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://blog.devep.net/virushuo/2009/03/09/betasalon_youdaoreader.html
第一次beta技术沙龙邀请的是有道阅读来分享他们的技术和产品设计。阅读器这个东西听起来不大,但是技术含量并不低。
下面这个图是我根据当时听的情况随手画的,不一定很正确,但是应该基本能够看到产品的架子。简单说来就是前端,web server ,缓存,存储。当然了,任何网站都得这么设计架构。
![]() |
| From blogimg |
大概可以分成几个部分:
- 存储(这里主要说的是文章的存储),是基于关系型数据库和key-value库的结合。这里可以简单理解为mysql+bdb,关系型数据库负责保存索引和基础信息,占用存储最大的文章全文在key-value库里面保存。使用的时候,根据查询结果,通过key到key-value库中取回全文。基本可以保证灵活性和效率,也是相对比较廉价的方案。
- 缓存直接使用了memcached,memcached现在已经成了网站标准配置,在谁的架构中如果看不到类似的东西存在,反而会有点奇怪。有道阅读采用了一组memcached作为缓存,特别值得一提的是,他们在缓存中保存了24小时内所需要用到的全部数据。据说是经过多次实践的结果。我估计这个缓存的尺寸也不小,而且未来还会增加,不知道未来会通过什么方式来处理。但至少目前的一段时间内是够用了。围绕memcached的相关解决方案和patch已经相当成熟了,看起来有道也没有进行特别多的定制和改动。
- web的部分比较值得一说。为了保证升级版本的时候,服务失效时间尽可能短,web的处理部分被拆成了一系列的Service,每个Service至少有一对实例承担正常的请求,在升级或是对某些模块进行改动的时候,可以依次对一对(或更多)实例中的某一个进行操作。这样整个应用并不会因为对某个Service的操作而停机。新旧模块的切换只在很短的瞬间(有道称之为"影子服务")。这种思想很类似SOA,不知道实际用起来感觉怎么样。我觉得接口的定义难度还是很大的。否则新旧Service切换的时候,其他相关的Service数据结构一旦不兼容,后果可能很严重。SOA的标准那么复杂,主要就是为了保持兼容和接口标准吧。当然,在一个产品之内,这种接口的定义相对容易点,毕竟复杂程度还是有限的。
- 用户界面部分使用JQuery,实际用起来响应速度相当不错。JQuery也是成熟的标准产品了,还是值得推荐的。
- 最后就是备份,除了几层日常备份,全部数据还在网易的存储系统上有一个更全面的备份,目前已经有20T的数据。在大公司内做产品就是有这种好处,轻松的解决了最困难的问题,实在令人羡慕。
总体上看,这个结构很规矩,没什么奇怪的地方,大量采用了现有的开源产品和方法。很务实。成熟的开源产品确实让开发工作变的简化了很多。
时间关系,还有很多细节没有说清楚。比如Service接口怎么定义,如何标准化,公司内部怎么来管理这些接口和文档,每天大量的文章如何抓取回来,如何管理等等。将来有机会再学习吧。
下面是现场的Keynote:
相关文章:







