JAVA连接MongoDB实践(1)
2013-11-08 18:07
1246 查看
由于业务需要,最近公司将一部分的数据转移的MongoDB数据库中。
在配合公司DBA 将 Mongodb数据库部署完毕以后,开始了我们的JAVA连接MongoDB的实践
开始前,推荐两个连接数据库的IDE工具
1.rockmongo-on-windows-v0.0.2 (只在火狐浏览器中运行成功)
2. Robomongo (在32机 XP 系统会启动不了)
MongoManager 函数 (实现Mongo 的单例模式)
在使用的过程中 如果大量的数据插入;每次万条数据, 千万级的数据量 经常会报连接异常(连接超时,找不到对应的db )
检查发现 是由于连接不释放引起的 (
db.serverStatus().connections;
)
解决的方式:
废弃使用 Mongo 函数 使用MongoClient 问题就解决了
附上 连接时候的 参数介绍:
如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。
maxWaitTime:最大等待连接的线程阻塞时间
connectTimeout:连接超时的毫秒。0是默认和无限
socketTimeout:socket超时。0是默认和无限
autoConnectRetry:这个控制是否在一个连接时,系统会自动重试
在配合公司DBA 将 Mongodb数据库部署完毕以后,开始了我们的JAVA连接MongoDB的实践
开始前,推荐两个连接数据库的IDE工具
1.rockmongo-on-windows-v0.0.2 (只在火狐浏览器中运行成功)
2. Robomongo (在32机 XP 系统会启动不了)
MongoManager 函数 (实现Mongo 的单例模式)
public class MongoManager { private static final Logger LOGGER = Logger.getLogger(MongoManager.class); private static Mongo mongo = null; private MongoManager() { } public static DB getDB(String dbName) { try { if (mongo == null) { init(); } } catch (Exception e) { LOGGER.error(e.getMessage(), e); } return mongo.getDB(dbName); } private static void init() { try { MongoClient client = new MongoClient(); mongo = MongoClient.connect(127.0.0.1, 27017)).getMongo(); MongoOptions options = mongo.getMongoOptions(); options.socketTimeout = 20000; options.maxWaitTime = 20000; options.connectTimeout = 20000; } catch (Exception e) { LOGGER.error(e.getMessage(), e); } }
在使用的过程中 如果大量的数据插入;每次万条数据, 千万级的数据量 经常会报连接异常(连接超时,找不到对应的db )
检查发现 是由于连接不释放引起的 (
db.serverStatus().connections;
)
解决的方式:
废弃使用 Mongo 函数 使用MongoClient 问题就解决了
附上 连接时候的 参数介绍:
如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。
maxWaitTime:最大等待连接的线程阻塞时间
connectTimeout:连接超时的毫秒。0是默认和无限
socketTimeout:socket超时。0是默认和无限
autoConnectRetry:这个控制是否在一个连接时,系统会自动重试
相关文章推荐
- Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍
- Java连接mongodb
- Java字符串连接最佳实践
- java 连接mongodb问题
- 简单的java连接MongoDB实例
- java连接数据方法jdbc:oracle,mysql,mongodb
- java连接access实践
- MongoDB_Java连接Mongo 限制字段返回数
- Java连接MongoDB进行增删改查
- MongoDB 3.0 for java 学习记录(一、java连接MongoDB)
- MongoDB_Java连接mongo 使用Java多条件查询mongo数据
- MongoDB3.2 Java连接方式
- Java 连接MongoDB
- Java_jvisualvm使用JMX连接远程机器(实践)
- Java无法连接MongoDB问题
- mongoDB 用java连接
- 在Linux上通过Java连接MongoDB服务进程mongod
- java连接MongoDB的方法(包括java和MongoDB环境的搭建)
- java使用“用户名+密码”连接mongodb,认证失败的问题解决
- 用java连接mongodb并执行$sum和$avg结合的聚合函数的实例。