@ApplicationScoped 在集群中
@ApplicationScoped in a cluster
我目前没有集群环境,但我很好奇 @ApplicationScoped
在集群环境中的行为。是整个集群只有一个,还是仍然是集群中每个 JVM 一个?
我读到 @Singleton
是在
中为每个 JVM 创建的
对 @ApplicationScoped
的引用是代理的,因此它们将由 CDI 容器正确解析。无论应用程序中存在多少个节点,这都是正确的;状态和实例在所有客户端请求之间共享。
@ApplicationScoped
bean 本身不被复制。
可能有一些容器或服务器在复制这些 beans,但它不是 CDI 规范的一部分。默认情况下,bean 不会跨 JVM 共享。 CDI 将为每个集群成员/jvm 创建一个唯一的代理。
Jakarta EE 中旨在处理此问题(按规范)的部分是 EJB。
我目前没有集群环境,但我很好奇 @ApplicationScoped
在集群环境中的行为。是整个集群只有一个,还是仍然是集群中每个 JVM 一个?
我读到 @Singleton
是在
对 @ApplicationScoped
的引用是代理的,因此它们将由 CDI 容器正确解析。无论应用程序中存在多少个节点,这都是正确的;状态和实例在所有客户端请求之间共享。
@ApplicationScoped
bean 本身不被复制。
可能有一些容器或服务器在复制这些 beans,但它不是 CDI 规范的一部分。默认情况下,bean 不会跨 JVM 共享。 CDI 将为每个集群成员/jvm 创建一个唯一的代理。
Jakarta EE 中旨在处理此问题(按规范)的部分是 EJB。