简短版本:需要建议(优点/缺点)为具有少量用户/请求和相对大量数据的客户端/服务器应用程序选择 Java 网络框架。
可能的选项:
- RMI
- 阿帕奇河
- Netty(这似乎更面向异步,它可以做同步调用吗?)
- 其他一些可以让我的生活更轻松的框架?:)
长版:我目前从事的项目是一个用 java 编写的桌面应用程序,它允许用户优化供应链的一部分。请注意,到目前为止,该应用程序只是桌面应用程序。它在本地机器上安装了一个数据库,就是这样。现在我们有新的要求来更改代码以支持共享/网络数据库。在网络服务器上安装数据库并启动应用程序的几个实例(如预期的那样)揭示了很多问题。最大的问题来自于数据库交互没有考虑到并发性这一事实。我们有很多锁等待和几个死锁发生。已决定修改数据访问层以适应新要求。
似乎不可能编写一个 DAL 来允许并发访问,而不将应用程序分离在客户端和服务器中,服务器将处理数据访问和可能的一些业务逻辑。我们不需要非常高性能的解决方案,没有那么多消息,但问题在于数据量。
一个典型的使用场景是这样的:
- 启动应用程序
- 从 CSV 文件(通常在 600MB-1GB 之间)导入数据并存储以备将来使用
- 添加场景配置(非常少量的数据)并存储它们
- 启动优化(从步骤 1 获取数据,应用配置,应用一些优化/限制)
- 显示优化结果。
步骤 4 将在服务器上完成,步骤 1-3 和 5 将在客户端执行。
你们有什么建议/建议吗?谢谢。