微服务框架下,服务间怎么保证数据一致性?
发布于 6 年前 作者 fightAndLearn 5067 次浏览 来自 问答

具体描述: 有两个服务,一个使用pg,一个使用mongodb,需要修改pg数据库相关联的数据同时修改mysql数据库,若不成功,则回滚数据。在这种情况下如何保证数据的一致性?

6 回复

微服务要求服务要独立,数据库也要独立。

也就是说,你每个服务应该只能自己修改自己所属的数据库。

最后再汇总数据到一个总数据库里面,去展示和统计。

@qinyang1980 可能我描述的不是很清楚,举个例子,a服务的a表需要复制一部分商品信息到b服务的b表,再复制一部分信息到c服务的c表,如果末个环节复制失败,则不复制。 From Noder

就是一个事务性操作啊。。A,B 同时成功,视为完成,不然回滚 。

由于微服务要求不同服务不同数据库,因此无法做到强一致性,只能是最终一致性。微服务一般用消息总线来完成事务性操作

谢谢各位,已经找到思路,贴上找到的一篇不错的博文,转载自简书SawyerZhou

回到顶部