首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双向数据同步的最佳实践/模式

双向数据同步的最佳实践/模式
EN

Software Engineering用户
提问于 2012-02-16 18:09:21
回答 2查看 40.5K关注 0票数 62

在我的工作中,经常会出现数据库系统之间双向数据同步的想法。典型的例子是两个稍微不同的CRM系统(例如,Raiser's Edge和Salesforce),以及它们之间需要双向同步的联系数据。

撇开API考虑因素不谈,假设您有一个可以同步的共享密钥,并且纯粹考虑要使用的算法/模式,这是一项经常被非技术人员低估的任务。

例如,你必须提防:

  • 您能很容易地检测到两个系统中哪些记录已经更改了吗(或者您是否需要比较系统之间的所有记录来检测更改)
  • 如果您要进行每N小时一次的同步,那么如何处理冲突,在这两个系统中,相同的记录或多或少会在相同的时间内发生变化。
  • 如果您要进行实时同步(即一个系统中的更新会立即触发对另一个系统的更新),那么如何处理由于错误或系统崩溃而导致的时间差异。

就我个人而言,我可以想出解决所有这些问题的方法,但我想知道是否有任何众所周知的模式、文献或最佳实践可以供我参考。

EN

回答 2

Software Engineering用户

发布于 2012-02-19 14:26:34

是的,一个很难的问题,很容易被低估。可能有很多工作要做。如果您使用的是微软技术,您可能想看看Microsoft 这里这里

票数 9
EN

Software Engineering用户

发布于 2012-02-18 10:41:36

有关远程站点数据库同步的理论有很多。首先从插入开始。处理这个问题很容易--因为您可以为每个站点创建一个唯一的ID (例如,站点名称+ ID (编号)的首字母: site_a_177和site_b_53)

因此,插入不应造成任何冲突。问题是更新。我不相信有100%的失败验证方法,但是您可以通过“锁定”远程DB中的记录来启动更新,并且只有在获得句柄之后才能启动更新--继续更新,然后同步更新,然后释放锁。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/135423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档