mongodb分布式查询
2016-05-25 13:36
555 查看
分布式查询:mongodb的分布式模型分为replica set和sharded cluster。
sharded集群中将read根据sharding key(分片键)转发到指定的shard节点,read操作非常高效;当然如果query中没有包含sharding key,那么此次read将会被转发到所有的shard节点上,并有mongos server负责merge结果(包括排序),所以这种情况性能较差(俗称scatter、gather),对于大型集群,这种查询通常是不可行的。
对于replica set而言,只是涉及到将read操作路由到哪个secondary上,默认情况下,read请求总是在primary上发生,我们可以通过指定“read preference mode”来调整这一行为。
Java代码
上述代码表示尽可能从 secondary上读取,如果所有的secondary都失效则从primary上读取。可以实现“读写分离”。
目前支持的read模式:
1)primary:读操作只发生在primary上,默认的read模式。如果primary失效,则返回error。
2)primaryPreferred:读操作发生在primary上,如果primary失效,则由secondary接收read请求。这是一种比较良好的模式,
3)secondary:读操作只发生在secondary上,如果所欲哦的secondary都失效,则返回error。
4)secondaryPreferred:读操作通常发生在secondary上,如果所有的secondary都失效,则由primary接收read请求。
5)nearest:读取“最近”的节点,mongodb客户端将评估与每个节点的网络延迟,有限选择延迟最小的节点,primary和secondary都有可能接收到read请求(不同的Client或许延迟不同)。
sharded集群中将read根据sharding key(分片键)转发到指定的shard节点,read操作非常高效;当然如果query中没有包含sharding key,那么此次read将会被转发到所有的shard节点上,并有mongos server负责merge结果(包括排序),所以这种情况性能较差(俗称scatter、gather),对于大型集群,这种查询通常是不可行的。
对于replica set而言,只是涉及到将read操作路由到哪个secondary上,默认情况下,read请求总是在primary上发生,我们可以通过指定“read preference mode”来调整这一行为。
Java代码
collection.withReadPreference(ReadPreference.secondaryPreferred()).find();
上述代码表示尽可能从 secondary上读取,如果所有的secondary都失效则从primary上读取。可以实现“读写分离”。
目前支持的read模式:
1)primary:读操作只发生在primary上,默认的read模式。如果primary失效,则返回error。
2)primaryPreferred:读操作发生在primary上,如果primary失效,则由secondary接收read请求。这是一种比较良好的模式,
3)secondary:读操作只发生在secondary上,如果所欲哦的secondary都失效,则返回error。
4)secondaryPreferred:读操作通常发生在secondary上,如果所有的secondary都失效,则由primary接收read请求。
5)nearest:读取“最近”的节点,mongodb客户端将评估与每个节点的网络延迟,有限选择延迟最小的节点,primary和secondary都有可能接收到read请求(不同的Client或许延迟不同)。
相关文章推荐
- MongoDB学习笔记(查询)
- MongoDB基础之八 备份与恢复
- MongoDB JAVA API Filters
- mongodb学习之id自增
- MongoDB快速翻页的方法
- mongodb用子文档做为查询条件的两种方法
- Ubuntu安装mongoDB
- MongoDB快速翻页的方法
- MongoDB快速入门学习笔记1 windows安装MongoDB
- mongodb安装与启动
- MongoDB 学习笔记(一)-MongoDB配置
- MongoDB创建数据库和删除数据库
- mongodb中$regex的用法
- MongoDB北大绿卡之安全建议
- mongodb各种导出导入数据的方法
- MongoDB windows64及32位安装
- MongoDB基础之七 用户管理
- MongoDB基础之六 索引
- 欢迎使用CSDN-markdown编辑器
- mongodb.conf配置文件详解