首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建一个大规模的java应用程序,你会使用什么堆栈?

问构建一个大规模的java应用程序,你会使用什么堆栈?
EN

Stack Overflow用户
提问于 2010-01-02 04:40:00
回答 9查看 2.6K关注 0票数 0

如果你需要使用java构建一个高度可伸缩的web应用程序,你会使用什么框架?为什么?

我只是在读thinking in-java,head first servlets和manning的spring框架书,但实际上我想专注于高度可伸缩的架构等。

你会使用tomcat,hibernate,ehcache吗?

(只要假设你必须针对规模进行设计,而不是寻找“当你得到流量类型响应时担心它”)

EN

回答 9

Stack Overflow用户

发布于 2010-01-02 05:55:25

答案取决于我们所说的“可伸缩”。这在很大程度上取决于您的应用程序,而不是您选择用来实现它的框架。

无论您选择哪种框架,事实是,您在其上部署它的硬件将对其能够处理的并发请求的数量有一个上限。如果你想处理更多的流量,你必须投入更多的硬件,并包括负载平衡等。

在这种情况下,相关的部分与共享状态有关。如果你有很多共享状态,你必须确保它是线程安全的,在需要的时候是“粘性的”,在集群中复制等等。所有这些都与你部署它的应用服务器和你设计应用的方式有关,而不是框架。

Tomcat不是一个“框架”,它是一个servlet/JSP引擎。它具有集群功能,但大多数其他Java EE应用服务器也是如此。如果您已经选择了Spring,那么您可以使用Tomcat,因为它意味着您没有EJB。Jetty,Resin,WebLogic,JBOSS,Glassfish -它们中的任何一个都可以。

如果您已经很熟悉Spring,那么它是一个很好的选择。我认为遵循Spring惯用法将使您的应用程序更有可能是分层的和架构合理的,但当涉及到可伸缩性时,这不是决定性因素。

Hibernate将使您的开发工作变得更容易,但数据库的可伸缩性在很大程度上依赖于模式、索引等。Hibernate不是保证。

"Scalable“是其中的一个通用术语(就像”轻量级“一样),它很容易抛弃,但包含了许多考虑因素。我不确定一个简单的框架选择就能一劳永逸地解决这个问题。

票数 5
EN

Stack Overflow用户

发布于 2010-01-02 04:42:50

我会去看看Apache Mina。在主页上:

Apache MINA是一个网络应用程序框架,可以帮助用户轻松地开发高性能和高扩展性的网络应用程序。它通过Java NIO在TCP/IP和UDP/IP等各种传输上提供了一个抽象的、事件驱动的、异步的API。

它有一个构建在它之上的HTTP引擎AsyncWeb。

一个不那么激进的建议(!)是Jetty --一个面向性能和小内存的servlet容器。

票数 4
EN

Stack Overflow用户

发布于 2010-01-02 06:53:08

我主要关注的两个关键字是异步和无状态。或者至少是“尽可能地无状态:当然,您需要状态,但也许,您可以考虑以文档为中心的数据存储,而不是完全成熟的RDBMS。

了解有关异步和CouchDB或MongoDB作为数据存储区的AKKA ...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1989571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档