MongoDB事务开发:读操作事务(未完成)

时间:2020-04-13 23:23:48   收藏:0   阅读:81

在读取数据的过程中我们需要关注以下两个问题:

从哪里读,关注数据节点位置;

什么样的数据可以读(数据是否提交),关注数据的隔离性。

 

第一个问题由readPreference来解决

第二个问题由readConcern来解决

 

什么是readPreference

技术分享图片

 

 

 

readPreference决定使用哪一个节点来满足正在发起的读请求。可选值包括:

 

readPreference场景举例

技术分享图片

 

 

 

readPreference与Tag

readPreference只能控制使用一类节点(按照节点的角色,不是固定的节点)。Tag则可以将节点选择控制到一个或几个节点。考虑以下场景:

一个5个节点的复制集;

3个节点硬件较好,专用于服务线上客户;

2个节点硬件较差,专用于生成报表

可以使用Tag来达到这样的控制目的:

为3个较好的节点打上{purpose:"online"};

为2个较差的节点打上{purpose:"analyse"}

在线应用读取时指定online,报表读取时指定reporting

 

readPreference配置

通过MongoDB的连接串参数:
mongodb://host1:27107,host2:27107,host3:27017/?replicaSet=rs&readPreference=secondary

通过MongoDB驱动程序API:

MongoCollection.withReadPreference(ReadPreferene readPref)

Mongo Shell

db.collection.find({}).readPref("secondary")

 

readPreference实验:从节点读

技术分享图片

 

注意事项

 

 

 

 

 

 

 

原文:https://www.cnblogs.com/liekkas01/p/12694855.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!