最近几天开始用云笔记Evernote...也顺带了解一下Evernote服务器端的设计。
Evernote的技术博客上有若干Evernote的CTODave Engberg撰写的文章做了阐述。可读性很强,可直接点开下面的原文链接阅读,这里就不赘述或翻译了。
Evernote服务器整体方案的描述:
http://blog.evernote.com/tech/2011/05/17/architectural-digest/
说是digest,其实说的很详细。一般的架构描述都侧重逻辑设计,物理部署方面都没说这么详细的。用了几个机房,机房间是什么样的链路,设备什么牌子型号的...很好。
Evernote的API选型:
http://blog.evernote.com/tech/2011/05/26/evernote-and-thrift/
一般使用Thrift是用于后端服务器与服务器之间的通信,Evernote不仅如此,客户端和服务器的通信也统一用Thrift。而Evernote三百多万活跃用户(2011年5月的数据),因此跑thrift代码最多的计算机可以算是装了Evernote的客户端了。
为什么使用MySQL,而不是使用NoSQL存储:
http://blog.evernote.com/tech/2012/02/23/whysql/
Evernote的有个区别于Facebook啊 twitter啊 IM等应用的显著特点是用户之间的独立性,没有交叉关系,每个人都只要读写自己的数据。这一点确实使Evernote的后端架构简洁很多。
Evernote的文本搜索实现:
http://blog.evernote.com/tech/2011/08/25/lucene-explainin/