重新实现stackoverflow.com的建议技术

Cha*_*tin 4 architecture scalability

如果你现在要重新实现SO,你会使用什么技术?如果您受限于Java技术,您将使用哪些技术.

Cha*_*tin 6

这就是我写的答案.

这是一个有趣的问题,因为SO实际上是以非常传统的方式为Web应用程序构建的,但与通常的Web应用程序不具有很多共同特征.特别是,它需要具有高度可扩展性,但业务规则和数据存储要求并不复杂.

所以,使用今天的技术,我会用

  1. 传统的javascript; 所以使用jquery,这很好.

  2. 我使用像Unicorn这样的面向工作池的Web应用程序,以实现轻松的可扩展性.

  3. 我会使用Hadoop和Cassandra来存储问题和评论.

  4. 我将在整个数据库中使用MapReduce实现评分和排名规则.

方便的是,大多数这些都可以从Java获得,尽管我更喜欢像Ruby或Python这样的脚本语言.

我会避免通常的基于Java EE的世界.在我看来 - 我是Sun的Java EE的早期用户 - techno.logy过度了.我也避免使用基于Windows的服务器; 他们很难管理,而且相对昂贵.(我可以以与OS许可证大致相同的价格构建服务器硬件.)