假设我有一个数据库用于存储我的应用程序数据,它是mysql,还有一个数据库用于记录日志,它是mongodb。如何处理这两个数据库之间的事务。例如,假设我想删除mysql数据库中的一条记录,并在mongodb数据库中插入一条新记录(new log record)。如何保证数据的完整性?如何确保只有成功删除数据库时才插入日志记录。
f8rj6qna1#
拥有一个需要mysql和mongodb之间事务的架构似乎是你的问题。在一个分布式系统中,这似乎是,更正常的是最终保持一致。事务性和分布式是非常困难的。也许您可以使用某种事件源来引发delete record事件,该事件最终将从mysql中删除一条记录,并最终将delete条目记录到mongodb中。或者,您可以实现saga或工作流解决方案来管理跨两个数据源的事务,并重试一定次数的日志条目,并在无法完成时进行必要的补偿。
1条答案
按热度按时间f8rj6qna1#
拥有一个需要mysql和mongodb之间事务的架构似乎是你的问题。在一个分布式系统中,这似乎是,更正常的是最终保持一致。事务性和分布式是非常困难的。也许您可以使用某种事件源来引发delete record事件,该事件最终将从mysql中删除一条记录,并最终将delete条目记录到mongodb中。
或者,您可以实现saga或工作流解决方案来管理跨两个数据源的事务,并重试一定次数的日志条目,并在无法完成时进行必要的补偿。