如何使用心跳?

Ami*_*rma 5 java mongodb mongodb-java

Mongodb Java驱动程序最近(在版本2.12中)添加了以下方法进行MongoClientOptions.Builder分类:

  • heartbeatConnectRetryFrequency(int heartbeatConnectRetryFrequency)
  • heartbeatConnectTimeout(int heartbeatConnectTimeout)
  • heartbeatFrequency(int heartbeatFrequency)
  • heartbeatThreadCount(int heartbeatThreadCount)

根据错误,看起来这些方法公开了属性,MongoDB Java驱动程序将使用这些属性尝试重新生成连接池,以防驱动程序连接池中的连接由于网络中断或mongodb-server重新启动而失效。

我已经阅读了有关的javadocs并在网上搜索,但是找不到任何详细的示例或很好的文章来解释如何使用它们。

这里有人知道如何使用这些属性吗?

Ami*_*rma 2

MongoClientOptions的 javadoc 中给出了这些字段的描述,如下所示:

  • heartbeatConnectRetryFrequency(int heartbeatConnectRetryFrequency):
    • 这是当 MongoClient 连接到的每个 MongoDB 服务器当前无法访问时,后台线程尝试连接该服务器的频率。
  • heartbeatConnectTimeout(int heartbeatConnectTimeout):
    • 这是后台线程使用的套接字的套接字连接超时,该后台线程正在监视 MongoClient 连接到的每个 MongoDB 服务器。
  • heartbeatFrequency(int heartbeatFrequency):
    • 这是后台线程尝试连接 MongoClient 连接到的每个 MongoDB 服务器的频率。
  • heartbeatThreadCount(int heartbeatThreadCount):
    • 这是将用于监视 MongoClient 连接到的 MongoDB 服务器的线程数。

我的一些观察

  • 这些方法在 v2.12.2 中成为 mongodb java driver api 的一部分。
  • 根据我的测试代码,
    • v2.12.2 之前,mongodb-java-driver 无法从 mongodb-server 重新启动中恢复
    • 在 v2.12.2 中,服务器重新启动后的第一次调用失败,并且所有后续调用都会通过(即 mongodb-java-driver 从服务器重新启动中恢复,但存在此错误
    • 上述错误已在 v2.12.3 中修复,截至撰写本答案时尚未发布。