0

哪些产品/项目可以帮助我应对以下情况?

  • 多于一台服务器(同一位置)
  • 某些状态应该在服务器之间共享(例如,如果计划任务正在运行以及在哪个服务器上运行的信息)。

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

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

有任何想法吗?

4

1 回答 1

2

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

现实情况是,在 Java EE 世界中,您最终将不得不使用队列,就像在 MoM [面向消息的中间件] 中一样。Seam 将与 JMS 一起使用,并且您可以拥有发布和订阅队列。

您可能想在 Akka 寻找替代方案。它使您能够使用透明的 Actor/Agent 模型跨机器分配作业。也就是说,您的代理可以相互合作,无论他们是在同一个实例上还是通过网络相互合作,而您无需编写大量代码来实现这一点,也不必专门处理消息上下的事情链。

Akka 的另一件事是监督的概念,也就是 Go Ahead and Fail,或 Let it Crash。这是一个想法(多年来一直被电信公司所遵循),系统会失败,你应该为它设计并拥有一种使事情变得有弹性的方法。

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

Akka 也是基于 Netty 构建的,它在并发性和性能方面做了一些非常疯狂的事情。

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

于 2013-01-22T07:26:54.197 回答