具有事务上下文的 Spring 远程服务

发布于 2024-10-21 15:37:04 字数 538 浏览 2 评论 0原文


我有以下情况:
我有一个接口服务器,它监听队列并接收来自“外部世界”的消息。然后,该服务器调用“内部”业务服务,该服务又调用其他服务,依此类推。
这些服务可以分别驻留在不同的计算机上,并且可以就此进行集群。
我需要事务的概念来跨越这些服务和机器。
我的开发堆栈包括 J2SE 环境上的 Spring (3.0.5) 和 JPA 2.0(后台 Hibernate)。
我可以在没有应用程序服务器的情况下实现这一目标吗?假设我插入一个外部 JTA 事务管理器(例如atomikos)
我们选择使用 Spring 的原因有很多,其中最重要的原因是服务抽象、密集的 DI 以及无需繁重的应用程序服务器即可工作的能力。我知道我们可以在应用程序服务器中使用 spring,但如果有人推荐这个,我想听听为什么应该这样做,假设我可以取消 spring 并转到所有应用程序服务器。

顺便说一句,只是为了让读这篇文章的人放心:是的,我们已经考虑过分布式事务的问题,但我们仍然认为我们需要这样的事务,因为这是服务的业务逻辑,并且需要跨机器作为一些服务会承受很大的压力。

预先感谢,
一泰

I have the following scenario:
I have an interface-server which listens on a queue and receives messages from the "outside world". This server then calls a "internal", business, service which in turn calls other services and so on.
These services can each reside on a different machine, and can be clustered for that matter.
I need the notion of a transaction to span across these services and machines.
My development stack includes Spring (3.0.5) and JPA 2.0(Hibernate in background) on a J2SE environment.
Can I acheive this without an app-server? Assuming I plug-in an external JTA transaction-manager (like atomikos for example)
We've chosen to go with Spring for many reasons the most important ones were the service abstractions, intensive DI and the ability to work without a heavy app-server. I know we can use spring in an app-server but if someone is to recommend this I'd like to hear why this should be done, assuming I can forefit spring and go all app-server.

BTW, just to reassure anyone reading this post: Yes, we've thought of the problematic issues of a distributed transaction but we still think we will need such a transaction as this is the business logic of the service and it will need to be across machine as some of the services will be under a lot of pressure.

Thanks in advance,
Ittai

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

腻橙味 2024-10-28 15:37:04

我们最终使用 JBoss 和 Spring。
JBoss 确实提供了所需的分布式事务,而 Spring 包含了所有 DI 等。
我们仍然保留 Spring,因为我们觉得它的 IOC 更干净、更舒适。
我们可能应该在 jboss 中使用 CDI,但这不在我们的考虑范围内。

We ended up using JBoss with Spring.
JBoss indeed supplied the distributed transactions that were needed while Spring contained all DI and such.
We still kept spring as we felt its IOC was cleaner and more comfortable.
It is possible we should have used CDI in jboss but that was not on our radar.

孤寂小茶 2024-10-28 15:37:04

我们在生产中使用 Spring 3 和 Atomikos 在 apache tomcat 和 oracle 数据库上进行分布式事务 (xa),因此这对我们来说是一个非常有用的设置。看一下atomos spring集成示例:

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

We use Spring 3 and Atomikos for distributed transactions (xa) on apache tomcat and oracle databases in production, so this for us a very usefull setup. Have a look at the atomicos spring integration example:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文