1

我正在开发一个包含以下 3 个组件的简单 Web 应用程序:

  1. 使用 Ajax、javascript、html 在浏览器上显示数据的客户端。
  2. 在客户端和数据处理实体之间进行接口的 Java Web 服务器。
  3. 数据处理实体,用 C++ 实现。

我需要决定使用哪个 Java 网络服务器。一些选项是:

a) 在 java (com.sun.net.httpserver) 中使用 httpserver 类并创建一个多线程进程。

b) 使用 Glassfish 服务器并在其上部署创建网页等的应用程序。

c) 使用码头。

d) ?

网络服务器的选择标准是:

  1. 稳定性(进程(Web 服务器)应该运行数天而无需重新启动)

  2. 可能的最大并发请求数约为 200。平均情况约为 30。

  3. 缓存在网络服务器上完成,如果数据可用或未被数据处理实体标记为脏,则从网络服务器本身提供请求。

非常感谢您的建议。

谢谢你。罗恩。

4

4 回答 4

5

不要使用 Java 的 Http Server 类。

Glassfish 很好,但可能超出了您的需要。

码头会工作得很好。

请注意,如果您使用 C++ 并使用 JNI 与 Java 交互,任何 seg 错误都会杀死整个服务器(与纯 Java 中的异常相比,它只会杀死请求并且容器可以恢复)。

于 2009-09-21T20:53:58.510 回答
1

我用Resin好几年了,非常好,稳定 100% 推荐。

于 2009-09-21T21:00:12.973 回答
1

Tomcat 可以做到这一点,但您应该在 java 端指定要求。例如,您是否使用任何 J2EE 功能?

对于缓存,您需要 JBoss 缓存之类的东西吗?

您是使用 JNI 将 Java 连接到 C++ 后端,还是使用 ESB 或其他方法?

正在缓存什么类型的数据?

更新:根据您的信息,我建议不要使用 Java,而是使用基于 C++ TCP 的服务器进行此通信。这样您就不会遇到 JNI/C++ 接口的问题。您可以相当轻松地编写 C++ 服务器,如果您使用 Boost 库,您将接近新的 C++ 规范。对于线程,您可以查看: http: //www.boost.org/doc/libs/1_40_0/doc/html/thread.html

于 2009-09-21T20:54:26.123 回答
0

我会选择Tomcat

于 2009-09-21T20:53:14.440 回答