我目前正在使用遗留系统,该系统由多个服务组成,这些服务(通过某种形式的企业服务总线(ESB)进行通信以同步数据).
我想逐步将这个系统用于微服务架构的方向.我计划减少对ESB的依赖,并使用更多的消息代理,如RabbitMQ或Kafka.由于某些资源/现有技术限制,我认为即使我能够将单个服务明确定义为数据所有者,我也不能完全避免服务之间的数据复制.
我现在想知道的是,如何在必要时安全地为单个服务进行数据库备份还原?这样做会导致服务与保存复制数据的其他服务不同步.有关于此的任何经验/建议吗?
让您的主数据库在每次发生数据库突变时发布事件,并让复制的服务订阅此事件并对其复制的数据应用相同的突变.
您已经使用了消息代理,因此您可以利用现有的堆栈来广播事件.通过事件完成复制,应用于主数据库的还原将传播到所有其他服务.
根据备份的规模,将会有一段短暂的时间,其他服务上的数据将过时.这可能是也可能不适用于您的用例.将陈旧性视为某种最终的一致性模型.
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |