最近接触了mongodb,用两台物理机部署了3个centos7-vm,分别在没台机器上部署了route和config。其中shard每台vm部署了一个,并没有配置复制集。
在性能验证的时候发现在不对collection开启shard的时候批量插入的性能大概在25000条/s。而开启shard之后批量插入的性能下降到了5000条/s。
。。。。
在经过一番排查之后再Stack Overflow上找到了这篇问答
其中一位回答者提到了可能是collection.bulkWrite(list);
导致的。
所以想到了问题可能出在客户端上。
我用的是springboot集成的MongoTemplate。
代码语言:javascript复制 public void batchInsert(List<Szgp> list){
mongoTemplate.insert(list,Szgp.class);
}
修改为
代码语言:javascript复制 public void batchInsert(List<Szgp> list){
BulkOperations ops = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, Szgp.class);
ops.insert(list);
ops.execute();
}
问题得以解决
相关文章
- MongoDB-4.x 关于shard在启动时报错 Got signal: 6 (Aborted).
- mongodb-4.x复制集数据同步(replica-set-sync)
- mongodb-4.x shard cluster 搭建-复制集节点为单个节点-适合开发环境
- mongodb生产部署手册
- mongodb:实时数据同步(一)