从 Reddit 学到的经验,reddit的最新教程
从Reddit吸取的经验教训
最近一些有价值的文章似乎并没有引起太多关注,比如Steve Huffman关于创建Reddit过程中的经验分享,在Twitter上的中文技术圈似乎并没有提及。
作为一个社交新闻网站,国内似乎关注Reddit的人并不多。我只知道有几个极客是它的死忠粉丝。Reddit由史蒂夫·霍夫曼(Steve Huffman)和亚历克西斯·奥哈尼安(Alexis Ohanian)于2005年6月创立,后于2007年被康泰纳仕(CondéNast)收购。现在alexa排名300以内。
根据维基百科的介绍(参考):Reddit最早是用Common Lisp开发的,后来用Python重写。著名的Python框架Web.py是由当时Reddit的员工艾伦·施瓦茨开发的,现在Reddit的Web框架使用的是Pylons。2009年11月,Reddit迁移到亚马逊的云计算平台。前端框架现在使用jQuery。也许你早就知道Reddit网站程序现在是开源的。如果有兴趣,不妨下载研究。
严格来说,史蒂夫的演讲实际上并没有涉及太多深入的技术信息,但这些经验确实可以作为通则分享给大家。
停机是家常便饭
很多人可能会觉得Startup的一些创始人是天才,其实未必。两个22岁初出茅庐的大学毕业生写的程序会有多好网站刚起步的时候,频繁的宕机让他们苦不堪言。其实Twitter和最近流行的FourSquare,一开始都不是很稳定,但还是吸引了足够多的用户。这是很多创业者需要慎重考虑的。
服务分离
现在有20多个数据库,每个数据库只处理一种特定类型的数据,只为简单起见。另外,Reddit的一个教训就是不要用Python线程,要用多进程。
打开架构
个人认为称之为KeyValue更合适。
让它保持无状态
这意味着无状态横向扩展更容易。也许这是单节点服务器扩展到多台服务器时首先要考虑的问题。否则负担会越来越重。
Memcached
除了尽可能使用Memcached来加快用户访问数据的速度之外,大量预先生成的页面内容都存储在Memcached中。此外,MemcacheDB还用于适当的场景,以满足数据持久化的需要。
存储冗余数据
让网站变慢的一个好方法是根据范式设计数据库。除了将数据存储在RDBMS中,大量的数据也存储在前文提到的MemcacheDB中。与收入相比,裁员的成本并不高。前提是能有效保证数据一致性。
脱机工作
尽可能异步处理用户操作,对于计算量相对较大的函数,利用离线计算模式。消息队列使用rabbit MQ (rabbit technologies ltd .已被SpringSource收购),并采用AMQP协议。
也许还有一些需要改进的地方。请按照文章的出处分析。Reddit就像一个技术标本,仔细琢磨会有很多有趣的地方。相信对你也有帮助。
文章推荐
出海精讲Branch支持Snapchat的移动归因解决方案——Advanced Conversions
敦煌网诚信保障金的充值与返还,敦煌网商户服务权益及常见问题
第三方跨境支付平台有哪些,第三方跨境支付平台有哪些
谷歌推广4,谷歌推广工具
TAG:reddit国内能打开吗