我正在构建一个系统,该系统将访问网站的用户的访问信息和页面转换等信息输出到MongoDB,网站服务器的MongoDB连接池变成了MAX,并停止了从web站点到MongoDB。
使用以下配置配置MongoDB服务。
mongos server#1服务: mongos、配置mongos server#2服务:mongos、config、rs01仲裁mongos server#3服务:mongos、config、rs02 02仲裁器node#1服务:rs02 01(次要)、rs02 02(次要) node#2服务:rs02 01(主)、rs02 02(主)
最初设置了以下状态,但操作系统被重新启动,主服务器已被降至节点# 2,但保留为node#1服务: is 01(主)、is 02(辅助) node#2服务: is 01(次要)、is 02(主)
从这种状态下,重新启动节点2、rs 01和rs 02的操作系统,将节点1的rs 02提升到主节点。rs01,节点2的rs02降至第二,我从日志中确认了这一点。
然而,更多的连接从节点2的操作系统重新启动到过期需要超过1到2个小时。并且网站服务器的MongoDB连接池变成了MAX,它不再从web站点连接到MongoDB。通常情况下,它将在大约30分钟内断开连接。我认为节点#1作为主节点工作,所以我认为它会正常工作,但我不知道为什么连接不断开很长一段时间。
如果您遇到类似的事件,请告诉我,如果有人知道解决方案或解决办法。
附录MongoDB的版本是"MongoDB 3.0.12“。连接到MongoDB的应用程序是使用.net c#构建的,运行在Windows 2012 R2上。TCP Keepalive仍然是默认设置。另外,当从应用程序连接时,socketOptions.keepAlive没有改变。应用程序的connectionString也不会按以下方式设置该选项。
发布于 2018-11-17 08:12:11
从这种状态下,重新启动节点2、rs 01和rs 02的操作系统,将节点1的rs 02提升到主节点。rs01,节点2的rs02降至第二,我从日志中确认了这一点。然而,更多的连接从节点2的操作系统重新启动到过期需要超过1到2个小时。并且网站服务器的MongoDB连接池变成了MAX,它不再从web站点连接到MongoDB。通常情况下,它将在大约30分钟内断开连接。我认为节点#1作为主节点工作,所以我认为它会正常工作,但我不知道为什么连接不断开很长一段时间。
根据MongoDB文档这里,副本集成员的优先级设置会影响主选举的时间和结果。更优先的成员更有可能举行选举,更有可能获胜。使用此设置可以确保一些成员更有可能成为主成员,而其他成员永远不会成为主成员。
成员的优先级设置的值确定成员在选举中的优先级。数量越多,优先级就越高。
注意:正如您所说的
version 3.0,这个版本的手册不再受支持。了解有关升级MongoDB版本的更多信息。
https://dba.stackexchange.com/questions/222605
复制相似问题