◆◆0ChangeStreams的顺序性—如何满足因果一致性该如何理解 黛云轩 2021/12/22 云圈子 367 1 百度已收录 阿里云双十二 新老用户服务器仅需57元起 双十二低至1折 1核2G 云服务器390元/1年 学生用户专属 18-24岁用户直享¥9.5/月 云·速成美站 千套模板,自己动手建网站 企业用户优选 2核8G内存5M带宽1015元/3年 多产品一键采购 购物车采购可减5000元 云服务器全球购 海外1核2G服务器低至2折 腾讯云双十一 2核4G 3M 698元/3年 过期域名预定 过期域名快速查询和抢注服务 ECS 云服务器 SWAS 轻量应用服务器 RDS 云数据库 Redis 云数据库 CDN 内容分发 OSS 对象存储 SLB 负载均衡 NAT 网关 DNS 云解析 MAIL 企业邮箱 WAF 应用防火墙 DDoS 高防 SMS 短信包 MK 云市场 XIN 心选 IM 商标注册 JZ 自营建站ChangeStreams的顺序性—如何满足因果一致性该如何理解上一篇: ChangeStreams的特性是什么下一篇: ChangeStreams的使用场景是什么
假如用户写请求,将 insert a=1,写在 Shard2 上 , 此时这条语句通过 ChangeStreams 吐出来了。
后来用户又 Update 了该条文档,把它从 a=1 改成 a=2,这条操作落在了 Shard2 上,此时 ChangeStreams 会把第 2 条文档输出,也就是说这两条文档 是具有前后因果性的,不会先吐出第 2 条文档再吐出 第 1 条文档,顺序保持严格的因果性。 另一个例子,例如用户 Insert 了 1 条数据是 a=1,然后 它落在 Shard2 上,然后又 Insert 了 1 条数据 a=2,但 它落在 Shard3 上。
后来这 2 条数据它是同时落在 2 个不同的 Shard 上 的,那么 ChangeStreams 它吐出的顺序可能是先 a=2,再 a=1,也就是说,如果 2 条数据在不满足因 果序的条件下,吐出的changeStrearn event 不能 够保证先后顺序。
资源来源:电子书《玩转MongoDB从入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=1060
2021-09-29 15:01