Cha*_*tin 4 architecture scalability
如果你现在要重新实现SO,你会使用什么技术?如果您受限于Java技术,您将使用哪些技术.
这就是我写的答案.
这是一个有趣的问题,因为SO实际上是以非常传统的方式为Web应用程序构建的,但与通常的Web应用程序不具有很多共同特征.特别是,它需要具有高度可扩展性,但业务规则和数据存储要求并不复杂.
所以,使用今天的技术,我会用
传统的javascript; 所以使用jquery,这很好.
我使用像Unicorn这样的面向工作池的Web应用程序,以实现轻松的可扩展性.
我会使用Hadoop和Cassandra来存储问题和评论.
我将在整个数据库中使用MapReduce实现评分和排名规则.
方便的是,大多数这些都可以从Java获得,尽管我更喜欢像Ruby或Python这样的脚本语言.
我会避免通常的基于Java EE的世界.在我看来 - 我是Sun的Java EE的早期用户 - techno.logy过度了.我也避免使用基于Windows的服务器; 他们很难管理,而且相对昂贵.(我可以以与OS许可证大致相同的价格构建服务器硬件.)