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