怎么保证分布式平台数据一致性?[面试8.0]

分布式的数据一致性指的分布式环境中的数据强一致,弱一致还是最终一致
而ACID的C强调的是事务前后的数据完整性

强一致性: 如利用分布式事务,分布式锁来保证数据的强一致性
弱一致性: 允许异步,如异步统计总量,往往数据有延迟的场景
最终一致性: 经过一段时间后数据最终一致,一般情况下都是异步的

最终一致性:
本地消息表: 利用数据库表记录数据更新状态,操作类型,具体信息,时间戳等,当系统故障后用于恢复
异步消息: 利用消息队列发送消息时,可以将消息保存在消息队列中,当系统恢复时可以进行恢复
补偿操作: 如补单,逆向补偿代码,回滚等

什么是顺序一致性(Sequential consistency),什么是线性一致性(Linearizability consistency)?[面试8.0]

顺序一致性:
任何一次读都能读到数据的最新数据
系统中的所有进程都能看到操作顺序但不一定和全局时钟一致
线性一致性: 又叫: 原子一致性
任何一次读都能读到数据的最新数据
系统中的所有进程都能看到操作顺序并且与全局时钟一致
注意: 线性一致性是CAP中的C