JBoss / EJB против симметричного DS - PullRequest
0 голосов
/ 23 октября 2008

Я работаю над проектом, который только начинается, и, так как я был занят другим, мои коллеги пошли дальше и начали работу над спецификациями для нового. Когда я вошел, они просто решили использовать постоянство с простым SQL (однако быстро приняли мое предложение добавить Hibernate), но настаивали на том, что репликацию данных следует выполнять с использованием инструмента под названием Symmetric DS , из которых Я никогда не слышал о.

Я обеспокоен тем, что, насколько мне известно, наличие сервера JBoss (в настоящее время планируется использовать только Tomcat) с EJB3 обрабатывает все проблемы транзакций / репликации и избавит нас от многих головных болей.

Как вы, ребята, видите это Симметричный DS ? (заметьте, что я ничего против этого не имею, просто я знаю, что JBoss уже давно и у него довольно респектабельная репутация)

Как бы вы сравнили два решения?

Спасибо!

EDIT : Кстати, как SymmetricDS работает с дублирующимися первичными ключами? Я имею в виду, если я добавлю одну строку в базу данных A, а другую - в базу данных B, возможно, обе будут добавлены с одним и тем же первичным ключом, верно? Как SymmetricDS справляется с этим, чтобы избежать конфликта? Это обсуждение на форуме поначалу, казалось, решало некоторые из этих вопросов, но не совсем отвечало на мой вопрос.

1 Ответ

6 голосов
/ 23 октября 2008

Я думаю, что EJB и SymmetricDS пытаются решить разные проблемы. EJB - это фреймворк, который обеспечивает (помимо прочего) постоянство базы данных. SymmetricDS - это приложение, которое фиксирует изменения, внесенные в базу данных, и применяет их к другой базе данных асинхронным способом. Фактически, эти две функции работают вместе, что позволяет вам легко сохранять данные из Java Bean в базу данных и реплицировать их в другие удаленные базы данных.

Вы можете развернуть SymmetricDS на JBoss или Tomcat (есть также отдельные и встроенные опции), и все, что его заботит, - это база данных. Под прикрытием он использует среду Spring для доступа к базе данных. Он устанавливает триггеры базы данных для захвата изменений и применяет изменения к целевой базе данных точно таким же образом. Итак, если строки A и B были зафиксированы вместе в исходной базе данных, то они зафиксированы вместе в целевом объекте.

Надеюсь, это поможет прояснить две технологии. На SourceForge существует активное сообщество для SymmetricDS, которое более чем радо ответить на вопросы и привести примеры успешных развертываний:

http://sourceforge.net/projects/symmetricds

Удачи в вашем проекте!

Eric

...