深度阐述一致性

一致性,至少有两种常见的解读。
其一,是指分布式应用中多个操作之间对数据、状态的变更是逻辑上严格有序的。也就是数据在分布式场景下要符合事务隔离级别的要求。比较常见的是多个微服务之间数据一致性以及缓存一致性。
其二,是指分布式应用中多个副本就某个值达成共识。比如,副本一、二、三;写入一时值为10,那么二三副本同步保持该值为10;从三副本读取该值为10,其他副本同样返回10。

针对场景一,各路大神各显神通,大致就是通过消息、binlog同步、数据库事务等方式。不过我想说的是,万本归宗,还是要从应用场景和对应的SLA出发来检验方法的可行性。
针对场景二,是有标准解决方案的,就是paxos或者gossip这样的理论上已经证明了的算法。且在各领域兼有旗舰实现,比如ZOOKEEPER,ETCD和Consul等。

其实对一致性的理解,还是回到隔离级别上才是本质。也就是读写可见性的问题。在进程内、系统基础架构领域都存在广泛的讨论。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,242评论 19 139
  • 缘起 最近研究Spanner,发现国内对Spanner论文的翻译很多,但是美中不足的是,每个人都在做论文的搬运工和...
    吕信阅读 20,034评论 4 36
  • 昨天,一位刚刚找到新工作的朋友约我出来聊天,满脸苦闷的她,与一个月前攥着拳头喊着要“大干一场”时所表现的踌躇满志完...
    冰糖陈皮阅读 3,987评论 87 201