我正在开展一个即将开始的项目,由于我正在忙于另一个项目,我的同事们继续开始研究新规范。当我进来时,他们刚刚选择使用普通SQL进行持久化(尽管接受了我建议添加Hibernate),但坚持认为应该使用名为 Symmetric DS 的工具执行数据复制。这是我从未听说过的。
我担心的是,据我所知,拥有JBoss服务器(当前的计划只使用Tomcat)与EJB3处理所有的事务/复制麻烦,并且应该让我们免于很多麻烦。
你们如何看待 Symmetric DS ? (请注意,我没有任何反对意见,只是因为我知道JBoss已经存在了很长一段时间并且它具有相当可观的声誉)
您如何比较这两种解决方案?
谢谢!
修改: 那么,SymmetricDS如何处理重复的主键?我的意思是,如果我在数据库A中添加一行而在数据库B中添加另一行,则两者都可能添加相同的主键,对吧? SymmetricDS如何处理这种情况以避免冲突? 这forum discussion似乎首先要解决其中一些问题,但它并没有完全回答我的问题。
答案 0 :(得分:6)
我认为EJB和SymmetricDS正试图解决不同的问题。 EJB是一个为数据库提供(在许多方面)持久性的框架。 SymmetricDS是一种应用程序,它捕获对数据库所做的更改,并以异步方式将它们应用于另一个数据库。事实上,这两者协同工作,使您可以轻松地将数据从Java Bean持久保存到数据库,并将其复制到其他远程数据库。
您可以将SymmetricDS部署到JBoss或Tomcat(还有独立和嵌入式选项),它所关心的只是数据库。在幕后,它使用Spring框架来访问数据库。它安装数据库触发器以捕获更改,并以完全相同的方式将更改应用于目标数据库。因此,如果行A和B在源数据库上一起提交,那么它们将在目标上一起提交。
我希望这有助于澄清这两项技术。 SourceForge上有一个针对SymmetricDS的活跃社区,非常乐意回答问题并提供成功部署的示例:
http://sourceforge.net/projects/symmetricds
祝你的项目好运!
埃里克