繁体   English   中英

云到本地 Oracle 数据库连接缓慢

[英]Slowness in cloud to onpremise Oracle database connection

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

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

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

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

有没有办法我们可以在 docker 容器或 hibernate 配置@Matt 中配置相同的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM