mongodb数据库连接池问题
遇到一个mongodb连接的问题,描述如下:
连接mongodb程序跑起不久后,访问mongodb数据库读取数据时出现异常com.mongodb.MongoSocketReadException: Prematurely reached end of stream,另起客户端想登陆mongodb也登录不了,查看mongodb的连接数发现连接被占满了,要重启mongodb服务器才好转。
我试过很多种调试方案:
1.将mongodb连接的最大存活时间缩短,正常情况下连接也都释放掉了,当并发访问时就出现不能释放连接的情况,一直占着,把程序停了也不能释放,只有重启mongodb服务器才能释放。
2.由于项目使用的是mongo-java-driver+spring-data-mongodb操作数据库,一开始怀疑是spring-data-mongodb有坑,后来做一次使用mongo-java-driver提供的api来操作数据库,自己手动创建和关闭连接,但是在压力测试进行并发访问的时候还是有连接数下不了一直占用着。
遇到这歌问题好久了,希望有同样遇到过此问题的大神们不惜赐教,感激不尽。