Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96815
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-07 01:56
个人简介

数据库技术爱好者

文章分类

全部博文(20)

文章存档

2016年(11)

2015年(9)

我的朋友

分类: NOSQL

2015-12-07 23:38:45

    默认情况下,复制集中只有主节点提供读操作,其他从节点读功能是关闭,我们可以配置读选项来实现从节点响应读请求,如果客户端配置了相应的读选项(一般在配置应用程序数据库连接时配置),其读的结果可以是由从节点返回的,从节点可能没有应用数据最近的更新(因为延迟),有可能读到脏数据,或者读到的相应内容有可能随后被撤销修改,一致性体现比较弱,尽管能实现最终一致性。从官方文档上看读有四种模式,包括primary,primaryPreferred,secondary,secondaryPreferred,nearest,我想这应该只能cluster中用吧,需要启mongos,否则怎么实现路由呢,而现实中多数使用者没有采用mongos,虽然官方文档到处都在说shard cluster,都无语了,造成我思想一度混乱
    通过配置应用程序驱动读选项来实现读从的话,其实一致性在一定程度上可以通过配置write concern来保证,只不过写操作的响应时间会有影响,写操作有可能会被阻塞。关于write concern,可以统一配置缺省选项,也可以同样也可以通过对各成员进行标记,然后利用成员标记配置write concern,实现复制集写策略。说到tag,不仅在配置write concern用到,在实现read from secondary也是可以与上述四述mode结合使用的。
阅读(1667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~