【问题标题】:Application Level Replication Technologies应用级复制技术
【发布时间】:2008-09-15 19:37:17
【问题描述】:

我正在构建一个解决方案,该解决方案将部署在全球多个地区的多个数据中心,每个数据中心都有一个在每个地区主动更新的数据副本。我将在每个数据中心拥有多个数据库和文件系统的组合,其状态必须保持一致(在数据中心内)。这些多个存储库将以 SOA 服务层为前端。

我可以容忍复制中的一些延迟,并且需要允许区域离线,然后再赶上。

鉴于数据的多个后端存储库,我不能轻易地依赖每个独立的复制解决方案来保持一致的状态。因此,我开始在应用层实现复制——通过以某种方式复制 SOA 请求。我需要确保不会发生复制循环,并且最后的写入器条件已正确排序。

根据您的经验,解决此问题的最佳模式是什么?是否有值得研究的好产品(免费或其他)?

【问题讨论】:

    标签: replication soa


    【解决方案1】:

    Lotus/Domino 是您的答案。我已经使用它十年了,它正是您所需要的。它可能并不流行(我会挑战这种看法),但它功能强大、适应性强且非常安全,最新版本的 R8 是迄今为止最好的。

    【讨论】:

      【解决方案2】:

      您绝对应该考虑 IBM Lotus Domino。 Lotus Notes 数据库可以按照预定义的计划在站点之间进行复制。 Notes/Domino 中的复制绝对是一个非常强大的功能,可以在站点之间完全复制数据。即使服务器在下次连接时不可用,它也会简单地复制并恢复同步。

      就 SOA 服务层而言,您可以使用 Domino Designer 编写 Web 服务。从 Notes/Domino 7.5.x(我相信)开始,Domino 已经能够提供和使用 Web 服务。

      【讨论】:

        【解决方案3】:

        根据其他人的建议,我也会推荐 Lotus Notes/Domino。 8.5真的是非常强大的应用开发平台

        【讨论】:

          【解决方案4】:

          您没有提供足够的细节来确定您的需求,但我认为您应该检查 SQL Server 合并复制。它允许异步复制具有完全冲突解决的多个数据库。您将需要指定一个全局主数据库,并且所有其他数据库都将复制到该数据库,但所有数据库实例都是功能齐全的(读/写),因此您可以在适合您的任何时间间隔安排复制。如果任何区域离线,他们可以稍后赶上没有问题 - 如果主服务器离线,每个人都将独立工作,直到复制可以恢复。

          我很想知道这种灵活的其他解决方案(当然除了 Lotus Notes/Domino,这几天不是很流行)。

          【讨论】:

            【解决方案5】:

            我认为您的答案必须基于发布/订阅架构。我假设您的数据中心之间有可靠的消息传递,以便您可以依赖最终收到的已发布更新。如果您对数据存储库的所有访问都是通过服务进行的,您可以将事件通知添加到每个更新服务的编排中,以通知所有感兴趣的数据中心该事件。理想情况下,主数据库是唯一发送这些更新的数据库。如果主数据库是唯一发送更新的数据库,您可以排除将通知路由到最初生成它们的节点,从而避免更新循环。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-03-15
              • 1970-01-01
              • 2011-11-05
              • 2011-12-12
              • 2011-11-19
              • 2012-08-28
              相关资源
              最近更新 更多