目前我们项目中使用的MongoDBJava客户端版本为2.9.1,这次的读写分离改造是基于2.9.1的。目前MongoDB已经发布了最新的3.0版本,对应的Java客户端是3.0.1,3.0版本在以前MongoDB.8版本上进行了重大的改造,进行了许多的优化和升级,包含插件式的存储引擎(类似于MySQL的架构),硬盘数据压缩,MVCC的支持,复制集升级等等,数据的读写性能都有很大的提升,相应的客户端API也进行升级,3.0.1版本的java客户端与2.9.1版本是完全不一样的,基本可以说是一个新的客户端。
目前的mongodb支持多种读优先的配置(read preference),该配置是针对mongodb中的集群而言的,目前mongo中有两种集群模式,主从以及复制集,这里以复制集作为例子,主从(sharding)支持读优先的原理与复制集类似,只是有细微的区别。目前支持以下几种方式(官方说明):