web-services - EJB3 远程 vs Web 服务,性能如何?

标签 web-services jakarta-ee glassfish java-ee-6 ejb-3.1

我正在计划一个 web 应用程序,其中每个使用它的人都会有一个客户端,可以在其计算机上运行计算(因为这些计算无法在服务器上完成,负载太大......),然后将结果发送到服务器。

我想会有很多人对我的应用程序感兴趣,这就是为什么我想知道我的架构是否良好以及我是否能够处理数千人。

我计划通过带有 Glassfish 服务器的 JNDI 公开远程 EJB,因此 1000 人可以同时使用这些 EJB(我猜可能有 5-50 个请求/秒)来检索本地计算所需的数据,然后发送结果...

将 EJB 公开给许多客户端是否昂贵?
使用webservices,rmi,另一种解决方案会更好吗?

你会为我将要做的事情推荐另一种架构吗?

最佳答案

首先,从纯架构的角度来看,EJB 用于构建分布式应用程序,Web 服务是一种集成技术,它们并没有真正相互竞争。在您的情况下,EJB 将是一个自然的选择(我们谈论的是 EJB3,对吗?)并且 session bean 可扩展性很好。

其次,如果服务器端代码只用于从数据库中检索数据并在客户端计算后保存结果,那么应用服务器很可能不是瓶颈,数据库会。换句话说,没有什么可担心的。

因此,由于您的客户端都是 100% Java 客户端,我只会公开无状态 session bean1 并避免 SOAP/XML 编码/解码和编写 WSDL 的开销(如果有一天您需要将您的服务公开为 Web 服务,这仍然会是可能的,而且很容易)。

1 使用 JPA 或其他东西进行数据访问由您自行决定。

关于web-services - EJB3 远程 vs Web 服务,性能如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469663/

相关文章:

java - ws 消费者服务地址中的动态属性

java - Java EE 应用程序是否有 "Socket Connection Pool"之类的代码?

java - glassfish应用程序服务器中的Web服务器是什么?

java - 无法在 Mac 上安装 Glassfish。它表示指定的目录不是有效的 GlassFish 安装

asp.net - 发送 AJAX 请求到 .aspx 页面并返回 JSON

web-services - TLS 对比 HTTP 摘要对比 WS-Security

c# - 验证方法访问权限的最优雅方法是什么 (C#.Net)

jakarta-ee - web.xml 和 weblogic.xml 有什么区别

java - HttpSession - 如何获取 session.setAttribute?

glassfish - 访问位于另一台服务器中的远程 ejb 的简便方法