您的位置:首页 > 其它

分布式消息最终一致性事务

2016-12-14 14:50 501 查看
现在先抛出问题,假设有一个主数据中心在北京M,然后有成都A,上海B两个地方数据中心,现在的问题是,假设成都上海各自的数据中心有记录变更,需要先同步到主数据中心,主数据中心更新完成之后,在把最新的数据分发到上海,成都的地方数据中心A,地方数据中心更新数据,保持和主数据中心一致性(数据库结构完全一致)。数据更新的消息是通过一台中心的MQ进行转发。

先把问题简单化处理,假设A增加一条记录Message_A,发送到M,B增加一条记录 MESSAGE_B发送到M,都是通过MQ服务器进行转发,那么M系统接收到条消息,增加两条数据,那么M在把增加的消息群发给A,B,A和B找到自己缺失的数据,更新数据库。这样就完成了一个数据的同步。

从正常情况下来看,都没有问题,逻辑完全合理,但是请考虑以下三个问题

1 如何保证A->M的消息,M一定接收到了,同样,如何保证M->A的消息,M一定接收到了

2 如果数据需要一致性更新,比如A发送了三条消息给M,M要么全部保存,要么全部不保存,不能够只保存其中的几条记录。我们假设更新的数据是一条条发送的。

3 假设同时A发送了多条更新请求,如何保证顺序性要求?

这两个问题就是分布式环境下数据一致性的问题

原文详细分析,原文地址:http://www.cnblogs.com/BrightMoon/p/5622614.html

附分布式最终一致方案梳理:http://www.cnblogs.com/BrightMoon/p/5622618.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐