选择Java Spring作为大型网站的可扩展服务器端框架

|| 我目前正面临有关要使用的适当服务器端框架的难题。 基本上,我想选择最佳的框架来构建一个大型网站,以提供数百万个页面匹配。该网站本身将是高度依赖数据库和ajax的网站,因此从一开始就需要对可扩展性进行规划。 我对合适的服务器端框架的需求如下: 基于高级面向对象的语言支持以及一些元编程支持。 在框架级别上适当的可伸缩性和负载平衡。 MVC体系结构。 ORM支持或至少对象级映射支持。 正确的路由(URL重写)支持。 最后,我的问题是,基于上述需求,Java Spring框架是否适合运营大型网站?我应该坚持使用Django还是Rails之类的东西?     
已邀请:
Spring是一个很好的框架。但是,它本身并不能解决您的可伸缩性问题 (并且没有其他框架会)。 要扩展服务器上的繁重负载,您需要确保服务器是无状态的,或者将负载均衡器与粘性会话一起使用。为了减少数据库的负载,您将需要缓存。没有框架可以为您解决。 换句话说,考虑整体系统设计而不是特定的编码框架。     
我希望以下内容。 Spring框架(MVC架构和DI原理)。 Hibernate框架。 使用memcache / Infinispan缓存mechanisam来减少服务器上的负载。 使用多个服务器/数据库实例的水平负载均衡。     
另一个好的选择-也是基于它的标准-就是Java EE。 EE 6是一个不错的选择,并且支持EE 6的JBoss AS 7取得了长足的进步,体积小,效率高,闪电般快。并且是免费和开源的。 作为标准,Java EE 6几乎满足了您的所有需求:CDI作为编程模型,基于JSF的Web前端,用于RESTful Web服务的JAX-RS,用于对象关系映射的JPA2,以及因此,需要它,JMS消息传递等。Sun/ Oracle的Java EE 6教程可能是您开始学习该技术的起点。 而且,如果您选择将JBoss作为运行时环境使用,那么您还将拥有出色的工具-一组Eclipse插件,可轻松构建Java EE应用程序。     
如果使用得当,几乎所有框架都可以。 Spring / Spring MVC是一个不错的选择: 它支持自定义URL映射 ORM支持 缓存支持-这对于您的可扩展性非常重要     
网络服务器: -要由Web服务器托管的静态内容:http://nginx.org/en/。 -许多资产可以托管在内容交付网络中。 -启用gzip压缩@ Web服务器和应用程序服务器。 -GUI应该是胖客户端,并且只有在初始化后才能从服务器获取数据。 -减少到服务器的旅行次数。 -压缩内容(HTML,CSS,JS,HTML本身中的嵌入图像等) 应用服务器: -确保对涉及的所有资源(如数据库,消息处理器等)使用池化技术。 -针对垃圾回收进行了优化的良好编码实践。 -使用NBIO应用服务器(JBoss Wildfly,Netty,Tomcat 8等) 数据库: -集群数据库。 -对数据库进行非规范化,并在代码中而不是在DB中维护软完整性。参照完整性和约束检查在查询(联接,插入,更新等)中要付出巨大的代价 -您可以看@迁移到ACID NoSQL数据库(例如Orient DB)。     
我去春天。 简单 支持您需要的所有功能以及更多功能 良好的社区支持     

要回复问题请先登录注册