Micro Services中的数据复制:还原数据库备份

时间:2015-06-28 01:07:07

标签: microservices

我目前正在使用遗留系统,该系统由多个服务组成,这些服务(通过某种形式的企业服务总线(ESB)进行通信以同步数据。

我想逐步将这个系统用于微服务架构的方向。我计划减少对ESB的依赖,并使用更多的消息代理,如RabbitMQ或Kafka。由于某些资源/现有技术限制,我认为即使我能够将单个服务明确定义为数据所有者,我也不能完全避免服务之间的数据复制。

我现在想知道的是,如何在必要时安全地为单个服务执行数据库备份还原?这样做会导致服务与保存复制数据的其他服务不同步。有关于此的任何经验/建议吗?

1 个答案:

答案 0 :(得分:5)

让您的主数据库在每次发生数据库突变时发布事件,并让复制的服务订阅此事件并对其复制的数据应用相同的突变。

您已使用消息代理,因此您可以利用现有堆栈来广播事件。通过事件完成复制,应用于主数据库的还原将传播到所有其他服务。

根据备份的规模,将会有一段短暂的时间,其他服务上的数据将过时。这可能是也可能不适用于您的用例。将陈旧性视为某种最终的一致性模型。