在我们公司,我们有一个部署到亚马逊的应用程序,它使用 mongo 作为其数据库,在 Mongo Java 驱动程序之上使用 Morphia。
但是,有时我们会遇到一些通信问题,并且对 mongo 进行的一些查询、插入和更新最终会失败。我们想告诉 morphia(或者更可能是 mongo java 驱动程序)自动重试失败的命令一定次数,与原因无关(无论是网络/连接失败,套接字超时异常,甚至是错误的查询或类似的东西)。
我们可以尝试将我们的 mongo 调用包装在一个 try/retry 块中,但这需要对我们的代码进行一些重大的重构,而且它可能仍然无法捕获 morphia 对 mongo 的每个调用。
我们在 Mongo Java 驱动程序文档中发现了一些有趣的选项,例如autoConnectRetry和socketKeepAlive,但它们似乎只解决网络故障,而且它们似乎不适用于我们的设置。
我们可以使用其他配置选项来实现这一点吗?如果没有,你们会建议我们如何解决这个问题?