2008-09-15 64 views
4

我正在构建一个将部署在全球多个地区的多个数据中心的解决方案,每个数据中心都有一个在每个区域中主动更新的复制副本。我将在每个数据中心中组合多个数据库和文件系统,其状态必须保持一致(在数据中心内)。这些多个存储库将由SOA服务层面向前。应用级复制技术

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

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

根据您的经验,解决此问题的最佳模式是什么,并且是否存在需要调查的优质产品(免费或其他)?

回答

0

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

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

2

莲花/多米诺骨牌是你的答案。我一直在为它工作了十年,它正是你所需要的。这可能不是新潮(我会挑战),但它的强大,适应性和非常安全性,最新的R8版本是最好的。

0

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

1

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

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

1

作为其他建议,我还会推荐Lotus Notes/Domino。 8.5是非常强大的应用开发平台