在Java EE服务器之间共享数据

时间:2013-01-22 07:20:13

标签: java java-ee seam shared-state

哪些产品/项目可以帮助我解决以下问题?

  • 多个服务器(同一位置)
  • 某些状态应该在服务器之间共享(例如,如果计划任务正在运行,则在适当的服务器上运行)。

显而易见的答案当然可以是数据库,但我们正在使用Seam,似乎没有一种很好的方法将事务嵌套在Seam-bean中,所以我需要找到一种方法,我不必去疯狂的配置(尝试使用EJB:s,但后来persistence.xml并不漂亮)。所以我需要另一种解决这个问题的方法,直到Seam支持嵌套事务。

如果您需要更多详细信息,这与我的情况基本相同:https://community.jboss.org/thread/182126

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

听起来您需要进行分布式作业管理。

现实情况是,在Java EE世界中,您将最终必须执行队列,如MoM [面向消息的中间件]。 Seam将与JMS一起使用,您可以拥有发布和订阅队列。

您可能想要在Akka寻找替代方案。它使您能够使用透明的Actor / Agent模型跨机器分配作业。也就是说,你的代理可以相互合作,无论它们是在同一个实例上,还是在网络中彼此之间,并且你没有编写大量代码来实现这一点,或者必须特别处理消息的上下情况链

Akka追求的另一件事是监督的概念,即前进和失败,或让它崩溃。这是一个想法(接下来是电信公司多年),系统将失败,你应该为它设计并有办法使事情具有弹性。

最后,Java世界中其他选项的工作状态令人沮丧。多年来一直使用Seam。这很棒,但他们决定只支持Quartz的工作,这是没用的。

Akka也建立在Netty上,在并发性和性能方面做了一些非常疯狂的事情。

[不是TypeSafe员工,顺便说一句......]