如果您现在要重新实现SO,您会使用哪些技术?如果您受限于Java技术,您将使用哪些技术。
答案 0 :(得分:6)
这就是我写的答案。
这是一个有趣的问题,因为SO实际上是以非常传统的方式为Web应用程序构建的,但与通常的Web应用程序不具有很多共同特征。特别是,它需要具有高度可扩展性,但业务规则和数据存储要求并不复杂。
所以,使用今天的技术,我会使用
传统的javascript; SO使用jquery,这没关系。
我使用像Unicorn这样的面向工作池的Web应用程序,以便于扩展。
我会使用Hadoop和Cassandra来存储问题和评论。
我会在整个数据库中使用MapReduce实施评分和排名规则。
方便的是,大多数都可以从Java获得,虽然我更喜欢像Ruby或Python这样的脚本语言。
我会避免通常基于Java EE的世界。在我看来 - 我是Sun的Java EE的早期用户 - techno.logy过度了。我也避免使用基于Windows的服务器;他们很难管理,而且相对昂贵。 (我可以以与OS许可证大致相同的价格构建服务器硬件。)
答案 1 :(得分:1)
我的办公室角落里没有服务器机架:),请将它放在云端。
btw here是对当前架构的概述
答案 2 :(得分:0)
缩放OUT而非缩放。