gpt4 book ai didi

java - 了解 java rmi 的良好实践

转载 作者:行者123 更新时间:2023-11-30 04:25:47 24 4
gpt4 key购买 nike

我有一个 RMI 应用程序,基本上,来自客户端的每个请求都会(在服务器端)创建一个到数据库的新连接,执行 SQL 查询并将数据转换为可序列化的类,然后发送回客户端。

应用程序的用户群不断增长,并且请求需要很长时间才能完成。以前的程序员提出的解决方案是创建一个从服务器到数据库的固定大小的连接池,每个客户端的请求都使用最旧的(最近使用最少的)来运行SQL查询。我的问题是:解决这样的问题的正确方法是什么?

最佳答案

我想说,汇集数据库连接已经是重要的一步,因为建立连接的成本很高。然而,我不会使用自己的池,而是使用现有且经过验证的池数据源实现,例如 DBCP 或 C3P0。它们有许多有用的功能,例如不同的大小、自动连接检查等......

如果是查询本身花费的时间太长,那么优化会比这更复杂。可以采取多种方法,具体取决于具体情况,例如:

  • 是否只有一个 SQL 查询,并且始终如您的问题所暗示的那样?
  • 数据库是只读的吗?
  • 如果不是,修改是在同一应用程序内还是在外部进行?
  • 等等...

减少请求时间的可能方法(我现在能想到):

  • 在 Java 应用程序中缓存结果(但这是一个很大的主题......)
  • 优化 SQL 请求
  • 通过索引或更深入地重构表结构来优化数据库架构
  • 将发送回客户端的数据量减少到最低限度(以防网络成为瓶颈)

我希望这有帮助。我们确实需要有关用例的更多详细信息,以便为您提供更好的答案。

关于java - 了解 java rmi 的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com