1.强一致性
某个节点在数据变更的情况下,必须保证其他节点访问此数据拿到的是变更后的数据。
例如:A,B,C三台数据库进行分布式集群,A做了修改,这时A会将数据同步至B和C,假设B或C有链接进行此数据的查询。
则,会出现两种结果。拿到原来的数据和拿到新数据。
而强一致性规定:必须拿到最新的数据,即整个数据变更过程,保证不允许外部访问拿到脏数据。
通常通过加锁等待的方式去实现强一致性。(服务器性能再好,也总会有个延时或者特殊情况,比如宕机)
分布式领域中无法满足强一致性,因为同步是靠网络传输,网络会有抖动。
2.弱一致性
在分布式集群中,不去理会单个节点数据修改是否成功,即A就算同步不成功,B拿到的是脏数据也无所谓。
会出现数据不一致的情况。所以很少使用这种机制
3.最终一致性
分布式集群中,A必须将数据同步至B和C中,就算中途B和C有链接访问到脏数据也无所谓,只要数据最终一致就行。
这也是分布式老生常谈的实现方案,就算节点宕机,也会有相应的重试和补偿机制维护其最终一致
欢迎大家和帝都的雁积极互动,头脑交流会比个人埋头苦学更有效!共勉!
公众号:帝都的雁