【问题标题】:Share data between Java EE servers在 Java EE 服务器之间共享数据
【发布时间】:2013-01-05 09:10:18
【问题描述】:

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

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

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

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

有什么想法吗?

【问题讨论】:

    标签: java jakarta-ee seam shared-state


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 我可以让 Seam 在 JMS 或 Akka 中运行吗?我们非常喜欢我们的 Seam-beans 和它们的逻辑。
    • 当然。您可以让代理使用 Seam 制作的组件。
    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 2016-07-30
    • 2016-06-27
    • 1970-01-01
    • 2017-05-29
    • 2010-12-24
    • 2021-05-15
    • 1970-01-01
    相关资源
    最近更新 更多