CNode

微服务框架下,服务间怎么保证数据一致性?

问答
FfightAndLearn发布于9 年前最后回复9 年前6 回复6178 浏览0 收藏

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

查看回复

回复 (6)

Q
qinyang1980#1·9 年前

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

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

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

F
fightAndLearn#2·9 年前

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

C
cnlile#3·9 年前

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

J
jingsam#4·9 年前

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

Q
qinyang1980#5·9 年前

楼上正解 @jingsam

F
fightAndLearn#6·9 年前

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

参与回复
登录后即可参与回复。登录