一、问题现象:
运行多年的应用突然读取数据出错,重启失败,报错如下图:
二、解决过程:
1、更改超时时间测试无效;
2、查看数据库主机防火墙策略也没发现问题;
3、关注到报错日志中关于数据库的类型
通过查找资料发现,现在这台server是一个SECONDARY,mongo驱动不能向SECONDARY节点写入数据,而我的接口里面有写入操作,基本确定mongo发生了primary和secondary切换。登录阿里云mongodb库,确实现在是secondary在运行!切回来就程序恢复正常(当然在之前排查时primary进行了CPU扩容)!切换的原因主要是primary 之前CPU利用率接近100%。