深度阐述一致性

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

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

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

你可能感兴趣的:(深度阐述一致性)