分布式事务
场景:一致性问题(双写,跨库)
1:JTA等支持分布式事务的事务管理器
缺点:解决方案太重量级,效率低,需要服务器支持,可能需要付费
2:使用数据库自身的数据同步机制
缺点:需要新老库结构基本一致
3:在老库放2张相同模型的表,一张用户老库的持久化表,一张作为临时表,临时表定时同步到新库,然后删除,出现问题就重试,新库只要保持幂等性即可
场景:数据高可用
方案:
数据分区:就是把数据分块放在不同的服务器上(如:uid % 16,一致性哈希等)。问题:数据丢失
数据镜像:让所有的服务器数据同步,提供无差别的数据服务。
高可用->数据冗余->数据一致性->性能问题
一致性模型
- Weak 弱一致性——异步冗余
- Eventually 最终一致性——异步冗余
- Strong 强一致性——同步冗余
方案:
1:master slave
2:master master
2PC/3PC

PAXOS算法:终极
浙公网安备 33010602011771号