Docs 菜单

修复连接问题

连接警报通常发生在超过 MongoDB 进程允许的最大连接数时。一旦超过限制,就不能打开新的连接,直到打开的连接数降到限制以下。

您可以在项目级警报设置页面中配置以下警报条件,以触发警报。

如果托管的活动连接数达到指定的平均值,则会出现Connections

如果打开的托管连接数超过指定百分比,则会出现Connections % of configured limit

超过 Atlas 集群的连接限制可能有多种原因。不同的 Atlas 层级具有不同的连接限制;例如,大小为 M0/M2/M5 的集群限制为 500 个连接,大小为 M10 的集群限制为 1500 个连接。集群层越大,连接限制越高。不同的数据库访问应用程序有不同的实现连接池化的方式,这会影响应用程序在任何给定时间维护的打开连接数。

要解决连接警报条件的问题,请重启当前正在与 Atlas 集群建立连接的应用程序。重启应用程序会终止应用程序已打开的所有现有连接,并让 Atlas 集群可以恢复正常操作。

大小为 M10 及更大的 Atlas 集群可以利用测试主节点故障转移选项。测试主节点故障转移过程将退出当前主节点并触发选举,进而断开与主节点的所有连接。

注意

如果应用程序以独占方式连接到从节点, 则可能需要多次执行测试故障转移过程, 确保适用的从节点在副本集轮换位置并断开连接。

测试故障转移通常是更好的解决方案, 但另一种可能的解决方案是重启当前与 Atlas 集群建立连接的 应用程序。重启应用程序, 终止所有现有连接,并支持 Atlas 集群恢复正常操作。

连接警报通常是更大问题的症状。采用上述策略之一可以解决眼前的问题,但永久解决方案通常需要:

  • Examining your database applications for flawed connection code. Situations in which connections are opened but never closed can allow old connections to pile up and eventually exceed the connection limit. Additionally, you may need to implement some form of connection pooling.

  • 如果用户群对于当前的集群层来说太大,请升级到更大的 Atlas 集群层,从而支持更多连接。

查看 Connections 图表,监控集群的连接总数。

监控连接以确定当前的连接限制是否足够。如有必要,请升级集群层。

要了解更多信息,请参阅查看集群指标。