1

在我们公司,我们有一个部署到亚马逊的应用程序,它使用 mongo 作为其数据库,在 Mongo Java 驱动程序之上使用 Morphia。

但是,有时我们会遇到一些通信问题,并且对 mongo 进行的一些查询、插入和更新最终会失败。我们想告诉 morphia(或者更可能是 mongo java 驱动程序)自动重试失败的命令一定次数,与原因无关(无论是网络/连接失败,套接字超时异常,甚至是错误的查询或类似的东西)。

我们可以尝试将我们的 mongo 调用包装在一个 try/retry 块中,但这需要对我们的代码进行一些重大的重构,而且它可能仍然无法捕获 morphia 对 mongo 的每个调用。

我们在 Mongo Java 驱动程序文档中发现了一些有趣的选项,例如autoConnectRetrysocketKeepAlive,但它们似乎只解决网络故障,而且它们似乎不适用于我们的设置。

我们可以使用其他配置选项来实现这一点吗?如果没有,你们会建议我们如何解决这个问题?

4

1 回答 1

1

驱动程序或 morphia 中都没有用于重试命令的设施。你必须自己管理。

于 2013-10-10T20:35:33.900 回答