1

简短版本:需要建议(优点/缺点)为具有少量用户/请求和相对大量数据的客户端/服务器应用程序选择 Java 网络框架。

可能的选项:

  1. RMI
  2. 阿帕奇河
  3. Netty(这似乎更面向异步,它可以做同步调用吗?)
  4. 其他一些可以让我的生活更轻松的框架?:)

长版:我目前从事的项目是一个用 java 编写的桌面应用程序,它允许用户优化供应链的一部分。请注意,到目前为止,该应用程序只是桌面应用程序。它在本地机器上安装了一个数据库,就是这样。现在我们有新的要求来更改代码以支持共享/网络数据库。在网络服务器上安装数据库并启动应用程序的几个实例(如预期的那样)揭示了很多问题。最大的问题来自于数据库交互没有考虑到并发性这一事实。我们有很多锁等待和几个死锁发生。已决定修改数据访问层以适应新要求。

似乎不可能编写一个 DAL 来允许并发访问,而不将应用程序分离在客户端和服务器中,服务器将处理数据访问和可能的一些业务逻辑。我们不需要非常高性能的解决方案,没有那么多消息,但问题在于数据量。

一个典型的使用场景是这样的:

  1. 启动应用程序
  2. 从 CSV 文件(通常在 600MB-1GB 之间)导入数据并存储以备将来使用
  3. 添加场景配置(非常少量的数据)并存储它们
  4. 启动优化(从步骤 1 获取数据,应用配置,应用一些优化/限制)
  5. 显示优化结果。

步骤 4 将在服务器上完成,步骤 1-3 和 5 将在客户端执行。

你们有什么建议/建议吗?谢谢。

4

1 回答 1

0

所以真正的问题是如何上传大量数据。对于这样的解决方案,我不会去 RMI - 它太受限制了。Apache River 似乎是某种发明。Netty 是一个低级的网络框架。您将被迫编写自己的协议。

我只是使用简单的 HTTP 服务器并使用 HTTP POST 请求上传数据。您可以使用 Gzip 压缩。HTTP 非常适合处理大文件。

在服务器端,任何 servlet 容器都可能会做(Tomcat、Jetty 等)。

在客户端,Apache HTTP 组件就足够了。你也可以试试Ning Async HTTP Client

于 2013-03-20T21:12:13.937 回答