首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Spring Boot 2.2.x升级到2.3x的MongoDB问题

从Spring Boot 2.2.x升级到2.3x的MongoDB问题
EN

Stack Overflow用户
提问于 2020-12-08 19:20:48
回答 1查看 395关注 0票数 0

我在升级我的spring-boot/mongodb-driver时遇到了一个非常令人困惑的问题。作为数据库,我们运行的是mongodb:4.0实例。

在我有之前

代码语言:javascript
复制
Spring Boot 2.2.8
"mongo-java-driver|async|mongo-java-driver-reactivestreams", version: "3.11.2|1.12.0"

现在切换到

代码语言:javascript
复制
Spring Boot 2.3.4
"mongo-java-driver|reactive-streams", version: "4.0.5"

在我们的ci-test-pipeline中,使用具有相同图像的mongodb-testcontainer就可以了。同样,从我的IDE与运行的应用程序连接到我们的数据库也没有问题。

但是:在我们的测试系统上,有时启动速度和平时一样快,有时启动时间延长了3-6倍,有时事件在10分钟后无法启动。在我们的“更大的测试系统”上,我从来没有在升级后达到“启动后”的阶段(这可能暗示它可以取决于数据的大小?)。

当我查看Mongo日志时,我看不到任何执行的查询或请求的索引构建,这可能会延长启动时间。我只是意识到一些行为发生了变化,例如,count查询现在变成了一个聚合(但这个手动执行的查询也很快)。

在我的应用程序中,唯一显示的是如下所示的日志

代码语言:javascript
复制
org.mongodb.driver.protocol.command      : Sending command '{"ismaster": 1, "$db": "admin"}' with request id 203 to database admin on connection [connectionId{localValue:3, serverValue:107164}] to server XXX
org.mongodb.driver.protocol.command      : Execution of command with request id 203 completed successfully in 1.15 ms on connection [connectionId{localValue:3, serverValue:107164}] to server XXX
org.mongodb.driver.cluster               : Updating cluster description to  {type=STANDALONE, servers=[{address=XXX, type=STANDALONE, roundTripTime=1.7 ms, state=CONNECTED}]
org.mongodb.driver.cluster               : Checking status of XXX

我真的不知道在哪里进一步调试,因为在我的本地机器上一切正常,而且我还可以看到数据是在启动时从数据库传输的,所以在原则上找到数据库没有问题。

编辑:在一次新的签出之后,我也面临着来自我本地项目的相同结果,所以似乎必须有一些缓存的东西没有被清理掉,这确实帮助spring跳过了那个连接问题。

EN

回答 1

Stack Overflow用户

发布于 2020-12-09 00:15:13

在升级之后,MongoCollectionImpl.doCount(..)不会在启动前提交结果,而只是空闲主线程。我设法跳过了我的计算,稍后在某个地方进行,现在它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65197948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档