连接警报通常发生在超过 MongoDB 进程允许的最大连接数时。一旦超过限制,就不能打开新的连接,直到打开的连接数降到限制以下。
警报条件
您可以在项目级警报设置页面中配置以下警报条件,以触发警报。
Connections 发生(如果主机的活动连接数达到指定的平均值)。
Connections % of configured limit 发生(如果与主机的打开连接数超过指定百分比)。
常见触发器
超过Atlas 集群的连接限制可能有多种原因。不同的Atlas层级具有不同的连接限制。
示例,M0 集群和 {Flex-clusters+} 仅限于 500 个连接。M10 集群仅限于 1500 个连接。集群层越大,连接限制越高。
不同的数据库访问权限应用程序有不同的方法来实施 连接池化,这会影响应用程序在任何给定时间维护的打开连接数。
解决眼前的问题
M0 和 {Flex-Clusters+}
重新启动当前正在与Atlas 集群建立连接的应用程序。重新启动应用程序会终止应用程序打开的所有现有连接,并允许Atlas 集群恢复正常运行。
删除项目中的所有IP访问列表条目。免费版和 {Flex-Clusters} 通过代理进行连接,该代理会在活动连接上强制执行访问权限列表。清除访问权限列表条目会清除活动应用程序服务器建立的所有连接。
M10+ 集群
大小为 M10 及更大的 Atlas 集群可以利用测试主节点故障转移选项。测试主节点故障转移过程将退出当前主节点并触发选举,进而断开与主节点的所有连接。
注意
如果应用程序以独占方式连接到从节点, 则可能需要多次执行测试故障转移过程, 确保适用的从节点在副本集轮换位置并断开连接。
测试故障转移通常是更好的解决方案, 但另一种可能的解决方案是重启当前与 Atlas 集群建立连接的 应用程序。重启应用程序, 终止所有现有连接,并支持 Atlas 集群恢复正常操作。
实施长期解决方案
连接警报通常是更大问题的症状。采用上述策略之一可以解决眼前的问题,但永久解决方案通常需要:
监控您的进度
查看 Connections 图表,监控集群的连接总数。
监控连接以确定当前的连接限制是否足够。如有必要,请升级集群层。
要了解更多信息,请参阅查看集群指标。