微服务架构数据库备份和恢复

我正在做一个基于微服务架构的大项目,所以考虑我有10个服务,其中一些有自己的数据库,这些数据库是在不同的技术(mysql,mongodb,elastic …)

那么备份和恢复服务收集的最佳做法是什么?

真正的问题是这些数据库是相互关联的,例如在我的逻辑后端服务器上我保存来自oauth服务器的每个用户的oauhId,

现在考虑分别恢复这两个数据库,现在我的逻辑服务器上的用户数据库包含一些用户,这些用户在oauth服务器上没有任何相关logging,

只是为了您的信息,我正在使用docker,docker-compose和docker swarm来进行服务编排。

作为一个想法:检查你的服务如何相互依赖。 如果您的依赖关系是非循环的,那么您可以将所有数据备份到外部或内部,而不会遇到一致性问题。

这样做可以保证你在恢复后不会有任何内容元素。

如果您的服务显示循环依赖关系,则可能会更好地维护每个服务(例如主从复制)。 然后,您可以取下从属实例,在离线时从所有从属服务器中进行备份。 这将允许您创build所有服务的primefaces备份。 但是,您的备份质量基于每个服务的主从复制质量。

最后,您可以保留每个服务的更改logging,再加上一个完整的备份。 因此,您可以编写回滚,并开始应用更改logging,直到达到服务实例的一致状态。 我认为这需要您具有逻辑依赖关系(请求标识符),使您能够关联更改元素的logging(即跨服务应用这些logging,而没有风险将其应用于与客户端实际交互时发生的逻辑依赖关系与您的服务)。

我希望这些想法可以帮助你解决你的问题:)