Mongodb事务
2021/10/16 2:15:56
本文主要是介绍Mongodb事务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Mongodb的事务通常是指多文档之间,Mongodb从4.0版本开始支持副本集的多行多文档事务,4.2版本开始支持分布式事务,增加了分片集群上多行多文档事务的支持。
Write Concern
writeConcern决定一个写操作落到多少个节点上才算成功,writeConcern的取值包括:
- w:0 设置为0 无需关心写入成功与否
- w :1-任意节点数,最大数为复制集群节点数,默认为1 ,表示写到Primary节点就开始往客户端发送确认写入成功。
- w:majority 大多数节点成功原则,非具体数据,复制集群中的大多数。
- w:all 所有节点写入成功才算成功
- j:true 默认情况为false,写操作达到内存算完成,如果设置为j:true,写操作只有到达journal文件才算成功。
- wtimeout:写入超时实战
测试示例
writeConcern: { w:"majority" // 大多数 j:true, wtimeout: 6000, }
建议:重要数据设置 w:"majority" 保证数据不丢失,普通数据设置w:1保证最优性能
Read Preference
readPreference 决定使用哪一个节点来满足 正在发起的读请求。可选值包括:- primary: 只选择主节点;
- primaryPreferred:优先选择主节点,如果不可用则选择从节点
- secondary:只选择从节点;
- secondaryPreferred:优先选择从节点, 如果从节点不可用则选择主节点;
- nearest:选择最近的节点 建议:primary/primaryPreferred:适合于数据实时性要求较高的场景,例如,订单创建完毕直接跳转到订单详情,如果选择从节点读取,可能会造成主节点数据写入之后,从节点还未复制的情况,因为复制过程是一个异步的操作。 secondary/secondaryPreferred:适应用于数据实时性要求不高的场景,例如,报表数据、历史订单。还可以减轻对主节点的压力。
这篇关于Mongodb事务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享
- 2024-12-10搭建个人博客网站之一、使用hugo创建个人博客网站