gpt4 book ai didi

java - Java 或 EJB 中的池化概念?

转载 作者:行者123 更新时间:2023-11-29 09:20:51 25 4
gpt4 key购买 nike

我们在无状态 EJB 中有池概念。使用有什么好处汇集?我的理解是它会节省创建对象的时间。这是正确的吗?如果是,在创建性能方面是否存在显着差异对象还是从现有池中获取?合并是否还有其他用途比这个?

最佳答案

池化对于共享有限的资源(例如数据库连接)和重用创建和/或销毁代价高昂的对象很有用。当与 EJB 结合使用时,它可以限制整个系统的负载,这在您运行服务器时非常有用。根据类似 question 中接受的答案,它还有助于线程安全。

当注入(inject)各种资源和其他 EJB(使用注释)时,创建(或设置)EJB 的成本可能很高,根据我的经验,这是一种常见情况。然而,例如 JBoss 似乎甚至对池化的 EJB 重复这个过程(参见 Tom Anderson 在类似的 question 中的回答)。

如果池中的公共(public) EJB 经常被注入(inject)到其他 EJB 中,则其他 EJB 将不得不等待公共(public) EJB 在系统真正繁忙时变得可用。池中的公共(public) EJB 然后充当共享的有限资源。缺点是当通用 EJB 不可用时(有时由基础设施中的故障引起),您可能会在意想不到的地方出现超时异常(例如 50 秒后)。

我有一些使用 JBoss 服务器的经验,该服务器具有适用于无状态 EJB 的池机制。在该 JBoss 服务器中,有一个经常使用数据库连接的公共(public) EJB。如果大量的工作一下子进入系统,负载会很高,但受池机制的限制。如果池机制对最大负载的限制太多,可以通过增加最大池大小来增加最大负载。

关于java - Java 或 EJB 中的池化概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6555504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com