Наше текущее приложение работает в одном JVM.Разрешить модульную разработку, продолжая работать в одном JVM?
Теперь мы разделяем приложение на отдельные логические службы, где каждая служба работает в своей собственной JVM.
Разделение выполняется для того, чтобы одна услуга могла быть изменена и развернута без воздействия на всю систему. Это уменьшает потребность в QA всей системы - просто нужно QA взаимодействовать с изменяемой услугой.
Для межсервисной связи мы используем комбинацию REST, системной шины MQ и представлений базы данных.
Что мне не нравится об этом:
- REST означает, что мы должны мобилизовывать данные в/из XML
- DB просмотров соедини системы вместе, которая побеждает всю концепцию отдельных услуг
- MQ/системная шина добавлена сложность
- Существует неизбежное дублирование кода между службами
- Вы настроили n конфигурацию сервера JBoss, мы должны выполнить n количество развертываний, n numb er setup скриптов и т. д.
Есть ли лучший способ структурировать внутреннее приложение для модульной разработки и развертывания, позволяя приложению работать в одной JVM (и достигая связанных преимуществ)?
Спасибо за ответ. Как сервер «облегчает общение» между пакетами? –
Я расширил это в отредактированном ответе. Вы просто вызываете необходимые методы. –
То, что я получаю, это то, как вы НЕ можете разбить приложение? Чтобы он работал в одной JVM, но разработал его, чтобы вы могли развернуть отдельные «модули» приложения самостоятельно. Делая это, у вас есть уверенность, что единственная часть измененного приложения - это «модуль A», и все, что вам нужно для QA, - это связь между «модулем A» и остальной частью вашего приложения. И это также уменьшит риск того, что изменение закралось в один из ваших модулей и вызвало некоторые проблемы, когда все, что вы хотели развернуть, это «модуль A». –