Нужно ли разрабатывать для отдельной базы данных & amp; время работы сервера для другого модуля?
-
07-07-2019 - |
Вопрос
При проектировании новой корпоративной среды на основе J2EE мне нужно подготовиться к ситуации, когда отдельные бизнес-модули должны использовать разные базы данных и работать на разных экземплярах сервера приложений? Р>
С другой точки зрения: кто-нибудь когда-либо сталкивался с требованием реальной жизни для разных баз данных & amp; серверов на модуль? Если да, каков размер этого предприятия? Р>
Потому что (насколько я вижу) это намного усложняет ситуацию, и с предыдущей версией этого фреймворка (и в небольших банках) вышеописанного случая никогда не было. Р>
Спасибо за ответы! Р>
Решение
Я не уверен, что правильно понял эту фразу
где отдельные бизнес-модули должны использовать разные базы данных
Все время. Р>
Возможно, мы говорим о разных вещах здесь. Я никогда не встречал ни одной организации без двух баз данных. Это включает меня и мой каталог CD и базы данных гитарных мелодий на моем ноутбуке.
Вы имеете в виду разных поставщиков баз данных? Версии базы данных, такие как Oracle vX и Oracle vY? Даже в соответствии с этим определением я не могу вспомнить ни одного покупателя, с которым бы я сталкивался, и который бы повсеместно стандартизировал одного поставщика или версию.
Итак, я бы ожидал, что в нетривиальной системе некоторые модули будут смотреть на одну базу данных, а другие - на другую. Да, абсолютно.
Можно ли ожидать, что некоторые модули будут просматривать две базы данных? Справочные данные в одном живут в другом. История в еще одном.
Разные модули на разных серверах - да. По причинам изоляции и масштабируемости. Серверы приложений - это одно из качественных решений.
В целом, почему вы видите это как проблему? Ваши модули ищут свои соединения JDBC в JNDI, им не нужно знать, что они используют разные базы данных. Это проблема с правами администратора, чтобы правильно подключить модули.
Одной из основных проблем может быть использование транзакций XA, но часто можно избежать обновления обеих баз данных в одном и том же модуле или из одного и того же модуля в одной и той же транзакции.