4

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

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

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

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

4

5 回答 5

2

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

于 2008-09-16T11:28:13.207 回答
1

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

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

于 2008-11-04T03:58:14.347 回答
1

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

于 2009-06-19T06:10:48.800 回答
0

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

于 2008-09-18T05:52:47.113 回答
0

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

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

于 2008-09-15T19:57:32.973 回答