【问题标题】:Slowness in cloud to onpremise Oracle database connection云与本地 Oracle 数据库连接速度缓慢
【发布时间】:2020-03-07 08:16:40
【问题描述】:

我有一些基于内部部署的前端 Java servlet 服务器、内部部署 Java 后端应用服务器和一个内部部署 Oracle 数据库服务器。我的 Oracle 客户端版本是 12.1.0 。 Java 版本是 openjdk "1.8.0_222" 。并将 tomcat v7.0.55 用于前端 servlet。该架构就像后端服务器与 Oracle DB 通信以处理 SQL 查询。

现在,我将所有服务器都移到了基于 AWS 云 docker 的容器中,除了 Oracle DB。我的 Java 后端服务器在 AWS docker 上运行,它连接到在本地数据中心运行的 Oracle DB。

现在我面临一个问题,即基于 AWS 的应用程序在连接到本地数据库时会出现延迟,并且延迟会随着请求数量的增加而不断增加,并且如果请求不断增加,最终应用程序会出现网关超时。但奇怪的是,如果我将我的 AWS tomcat 前端服务器连接到与本地 Oracle DB 对话的本地 Java 后端服务器,它就不会发生。只有当 AWS Java 后端服务器与本地 Oracle DB 通信时才会发生这种情况。我不确定为什么会这样。任何想法都将受到高度赞赏。

【问题讨论】:

  • 我注意到的一件事是我的本地服务器能够与本地 Oracle 数据库建立多个会话。但是,基于云的 docker 容器仅与本地 Oracle 数据库创建顺序会话,即使它们都运行相同的应用程序。

标签: database oracle amazon-web-services cloud


【解决方案1】:

这个问题与我们使用的 DAO / ORM 框架有关。如果您使用 Hibernate 、 Spring 之类的东西,它将以一种 SQL 调用未使用连接语句优化的方式工作。因此,要获取 1000 个对象,将有 1000 多个 SQL 调用。因此,如果网络中到数据库有一个位数毫秒的延迟,它将启动到 1000 倍的延迟时间。所以解决方案是让数据库尽可能靠近应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2022-11-23
    • 2015-11-06
    • 2012-10-15
    相关资源
    最近更新 更多