在集群应用服务器上部署JavaEE应用程序

在集群应用服务器上部署JavaEE应用程序,java,jakarta-ee,ejb,cluster-computing,Java,Jakarta Ee,Ejb,Cluster Computing,当服务器集群化时,应用程序将如何部署。 我不是说docker。我指的是WildFly/JBoss中的域模式或Glassfish或Websphere中的集群 它是否像群集的每个节点/实例上的一个独立应用程序?比如,如果我有一个@Singleton实例,它是整个集群上的一个实例,还是每个节点上的一个实例,每个正在运行的应用程序上的一个实例 或者,它将被视为只是在引擎盖下的集群上部署的一个应用程序?就像@Singleton在节点X上的某个地方,如果我从节点Y调用它,它将通过tcp或其他方式调用它(如果

当服务器集群化时,应用程序将如何部署。 我不是说docker。我指的是WildFly/JBoss中的域模式或Glassfish或Websphere中的集群

它是否像群集的每个节点/实例上的一个独立应用程序?比如,如果我有一个@Singleton实例,它是整个集群上的一个实例,还是每个节点上的一个实例,每个正在运行的应用程序上的一个实例

或者,它将被视为只是在引擎盖下的集群上部署的一个应用程序?就像@Singleton在节点X上的某个地方,如果我从节点Y调用它,它将通过tcp或其他方式调用它(如果不使用EJB客户端)

它是否与每个服务器上的一个独立应用程序相似 集群的节点/实例?就像我有一个@Singleton实例一样 它可以是整个集群上的一个,也可以是每个节点一个,每个节点一个 每个跑步应用程序

假设集群设置了两个节点/主机(即两个JVM),那么
@Singleton
对象将有两个副本(即每个JVM主机中有一个副本)

通常,singleton=每个webapplication每个JVM的单个对象(实例)

换句话说,当您在同一服务器(JVM)内部署多个web应用程序时,您可以在同一JVM内拥有同一类的多个对象/实例(每个web应用程序一个)

或者,它将被视为一个应用程序只是在一个 引擎盖下的集群

通常,集群将设置在两个或多个独立的主机中(为了实现弹性、负载平衡等原因),即应用程序将部署到单独的JVM中,因此每个JVM中都会有单独的
@Singleton
对象副本

如果我有节点n1n2 n3。在节点n3上,我将创建一些bean 使用类似@Inject private SingleBean SingleBean的singleton注入; 它是仅来自节点n3的单例还是有某种方式 来自n1的单体可能被注射

它将仅针对节点3(JVM)使用单例。


如果您真的想跨JVM共享(由于任何原因)singleton实例,您可以参考更多详细信息。

如果a有节点n1 n2 n3。在节点n3上,我将创建一些注入了singleton的bean,比如@Inject private SingleBean SingleBean;是来自节点n3的单例,还是有某种方式可以注入来自n1的单例?我不想从另一个节点获取单例。我只是想确定我知道应用程序是如何工作的。)我已经用你的问题更新了我的答案,你可以看一下。