Spring удаленные сервисы с контекстом транзакции - PullRequest
1 голос
/ 14 марта 2011


У меня есть следующий сценарий:
У меня есть интерфейс-сервер, который прослушивает очередь и получает сообщения из «внешнего мира». Затем этот сервер вызывает «внутреннюю», служебную службу, которая, в свою очередь, вызывает другие службы и т. Д.
Эти службы могут находиться на разных компьютерах и могут быть кластеризованы.
Мне нужно, чтобы понятие транзакции распространялось на эти службы и машины.
Мой стек разработки включает в себя Spring (3.0.5) и JPA 2.0 (Hibernate в фоновом режиме) в среде J2SE.
Могу ли я добиться этого без сервера приложений? Предполагая, что я подключаю внешний JTA-менеджер транзакций (например, atomikos)
Мы решили использовать Spring по многим причинам, наиболее важными из которых были абстракции сервисов, интенсивный DI и возможность работать без тяжелого сервера приложений. Я знаю, что мы можем использовать spring на сервере приложений, но если кто-то порекомендует это, я бы хотел услышать, почему это нужно сделать, предполагая, что я могу предпочесть Spring и использовать весь сервер приложений.

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

Заранее спасибо,
Еффий

Ответы [ 2 ]

1 голос
/ 11 ноября 2012

В итоге мы использовали JBoss с Spring.
JBoss действительно предоставлял распределенные транзакции, которые были необходимы, в то время как Spring содержал все DI и тому подобное.
Мы все еще сохраняли spring, поскольку чувствовали, что его IOC был чище и удобнее.
Возможно, нам следовало использовать CDI в jboss, но этого не было на нашем радаре.

0 голосов
/ 15 марта 2011

Мы используем Spring 3 и Atomikos для распределенных транзакций (xa) в базах данных apache tomcat и oracle, так что для нас это очень полезная настройка.Взгляните на пример интеграции пружин Atomicos:

http://www.atomikos.com/Documentation/SpringIntegration

...