0

我们的实验室有一台机器,它对来自外部的 http 连接开放。但是,这台机器很弱(内存小,CPU 慢)。我们还有其他更强大的机器,但它们位于防火墙后面,无法从实验室外部访问。

我正在编写一个 GWT 应用程序,其服务器要求非常高。是否可以将服务器安装在强计算机上,将客户端安装在弱计算机上,并让它们使用 RPC 连接?我认为它需要对 web.xml 文件进行一些更改,但究竟是什么?

从理论上讲,我可以将要求的部分包装在单独的 TCP/IP 服务器中,并让 GWT 服务器与其联系,但我想知道是否可以直接在 GWT 中进行。

4

3 回答 3

1

我曾尝试这样做,但仅成功地将 GWT 项目拆分为 3 个部分(客户端、RPC、服务器)作为 eclipse 项目。最后,您将得到 1 个大 WAR 文件,并将其部署在一个地方(除非其他人成功地真正分离了代码。)

您可以做的一个解决方案是设置另一台服务器,该服务器将执行所有服务器端处理(您的强大机器)并让 GWT servlet 像代理一样工作。它们接受来自客户端的请求并将数据转发到另一台服务器进行处理。然后等待响应。

你怎么做取决于你。您可以使用 Web 服务、直接套接字连接、JMS ..等。

于 2012-06-28T10:25:16.300 回答
1

取决于你的设置。

GWT ACRIS-请参阅此链接

EJB - 一种方法是将业务对象作为 EJB 保存在远程机器中,而您的 servlet 通过 RMI/JNDI 访问它们。

Spring - 另一种简单的方法是使用 Spring Remoting。请参阅此链接

于 2012-06-28T13:52:05.670 回答
1

GWT 客户端从服务器下载并在 Web 浏览器中作为 javascript 代码运行。我不太明白您希望在单独的服务器上运行 GWT 应用程序的哪个部分。

如果您的 GWT servlet(RPC 服务实现)正在访问外部资源,例如数据库或 Web 服务,您可以将这些资源移动到单独的服务器上。

另一种选择是在“弱”服务器上安装反向代理,将特定请求转发到防火墙后面更强大的服务器。代理可以由“弱”服务器上的 Apache (httpd) 完成(使用 mod_proxy)。然后 Tomcat 只需要安装在更强大的机器上,并且会负责大部分处理。

于 2012-06-28T16:27:29.257 回答