我们有一个基于客户端-服务器架构的产品。有关所使用的技术堆栈的一些详细信息。
- 客户端 - Java Swing
- 服务器 - RMI
- Java 数据库 - Oracle
客户端位于世界不同地方,但java服务器和oracle数据库位于瑞典的同一台机器上。因此,存在大量网络延迟。位于遥远地点的客户端的性能很差。该应用程序用于处理大小超过50MB的文件。每个操作一般需要大约超过 1000 次网络调用。
根据您的经验,您如何解决这个问题并提高性能?
编辑:回答几个问题
- 文件包含需要处理和更新到数据库的实际业务数据,不能部分发送。
- 一些网络调用可以批量处理,但这需要对代码进行重大重构。这是一个非常古老的应用程序,编写于 2001 年。应用程序的设计是这样的,服务器保存所有服务,并且它们可以跨代码重用,业务逻辑写在客户端。因此,该业务逻辑多次调用服务器,因此是一个天文数字。
-斯内哈尔
最佳答案
减少往返次数
单次操作 1000 次往返是一个天文数字。您绝对不应该看到这些数字。
尽管如此,50MB 文件仍然存在问题。在这种情况下,您要么需要找到一种方法来提高传输效率(仅传输两个相似文件之间的增量?),要么采用某种缓存。
WAN 流量正在扼杀您的应用程序,听起来您需要进行重大重构。
关于java - 如何提高客户端-服务器架构应用程序的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792807/