0

我正在做一个即将开始的项目,由于我正忙于另一个项目,我的同事们继续着手研究新项目的规范。当我进来时,他们刚刚选择使用纯 SQL 进行持久化(尽管很快接受了我添加 Hibernate 的建议),但坚持认为应该使用一个我从未听说过的名为Symmetric DS的工具来执行数据复制。

我很担心,因为据我所知,拥有一个带有 EJB3 的 JBoss 服务器(当前计划仅使用 Tomcat)可以处理所有事务/复制的麻烦,并且应该让我们免于很多麻烦。

你们如何看待这款Symmetric DS?(请注意,我对此没有任何反对意见,只是我知道 JBoss 已经存在了很长时间,而且它的声誉相当可观)

您如何比较这两种解决方案?

谢谢!

编辑:顺便说一下,SymmetricDS 如何处理重复的主键?我的意思是,如果我在数据库 A 中添加一行,在数据库 B 中添加另一行,那么两者可能都会添加相同的主键,对吧?SymmetricDS 如何处理以避免冲突?这个论坛讨论起初似乎解决了其中的一些问题,但并没有完全回答我的问题。

4

1 回答 1

6

我认为 EJB 和 SymmetricDS 正在尝试解决不同的问题。EJB 是一个为数据库提供(在许多方面)持久性的框架。SymmetricDS 是一个应用程序,它捕获对数据库所做的更改并以异步方式将它们应用到另一个数据库。事实上,这两者一起工作,使您能够轻松地将数据从 Java Bean 持久保存到数据库,并将其复制到其他远程数据库。

您可以将 SymmetricDS 部署到 JBoss 或 Tomcat(也有独立和嵌入式选项),它只关心数据库。在幕后,它使用 Spring 框架来访问数据库。它安装数据库触发器来捕获更改,并以完全相同的方式将更改应用于目标数据库。因此,如果行 A 和 B 在源数据库上一起提交,那么它们在目标上一起提交。

我希望这有助于澄清这两种技术。SourceForge 上有一个活跃的 SymmetricDS 社区,非常乐意回答问题并提供成功部署的示例:

http://sourceforge.net/projects/symmetricds

祝你的项目好运!

埃里克

于 2008-10-23T17:47:55.933 回答