java - 托管时 Mongodb 变慢

标签 java mongodb digital-ocean

我正在使用 Java SE 实现桌面应用程序。我在本地使用 Mongodb,一切都非常快。然而,我决定在 mongodb Atlas 上在线部署数据库,并使用他们的连接线,该连接线以 mongodb://开头,从这里开始,由于连接,应用程序变得非常慢。我尝试使用相同的连接字符串 mongodb://ip_adress:port 将其部署在 Digital ocean Droplet 上。它变得更快了一点,但也没有那么快。

*本地计时:1-2秒

*Mongo atlas 上的计时:8-10 秒。 (免费层共享集群)

*Digital Ocean 服务器上的计时:7-8 秒。

请注意:8秒是一个JFrame,它根据数据库中的数据进行一些计算,因此当连接在线时加载需要8秒,而本地加载时间几乎为0。

问题:

*在应用程序或数据库的实现中这是一个不好的做法吗?这不太可能,因为它在本地速度非常快,而且数据库仍然包含简单的测试数据。

*服务器规范是否不好?这似乎不是问题,因为除了我的测试和几乎从未访问过的网站之外,服务器上没有超繁重的任务。 ( digital ocean 5 美元水滴)

日志

  • 登录
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[ip_adress:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Sep 22, 2019 8:24:21 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster description not yet available. Waiting for 30000 ms before timing out
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:84}] to ip_adress:27017
Sep 22, 2019 8:24:23 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=ip_adress:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 6, 3]}, minWireVersion=0, maxWireVersion=6, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=425466400}
Sep 22, 2019 8:24:26 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017
Sep 22, 2019 8:24:27 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:85}] to ip_adress:27017 because the pool has been closed.

最佳答案

连接时间很正常。您应该在单独的线程上进行调用,这样它就不会阻塞您的用户界面。

关于java - 托管时 Mongodb 变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58043602/

相关文章:

java - Joda 在 GMT 时区解析 ISO8601 日期

java - 无法使用 Selenium Webdriver 在 MAC 上最大化 Safari 浏览器

java - 如何将 build.xml 中定义的变量值传递给 Java 类

node.js - 测试 findOneAndUpdate upsert 重复预防

java - Spring Boot RESTful 应用程序错误

javascript - 如何通过 Django 正确地服务于我的 React 生产构建。当前配置存在 MIME 类型问题

networking - 如何访问 docker 自定义桥接网络中的端口

java - Ajax 渲染属性在 h :dataTable in JSF2 中不起作用

javascript - meteor : Changes in collections are not reflected in rendered HTML

git - Dokku的Dart项目。未能掌握