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

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

你们如何看待这款对称DS? (请注意,我对此没有任何反对,只是我知道JBoss待了很长一段时间,并且它享有相当可观的声誉)

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

谢谢!

编辑:
顺便问一下,SymmetricDS如何处理重复的主键?我的意思是,如果我在数据库A中添加一行,在数据库B中添加另一行,则可能都将添加相同的主键,对吗? SymmetricDS如何处理以避免冲突?
起初,这个forum discussion似乎解决了其中一些问题,但并不能完全回答我的问题。

最佳答案

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

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

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

http://sourceforge.net/projects/symmetricds

祝您项目顺利!

埃里克

关于java - JBoss/EJB与对称DS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/229325/

10-10 12:31