在集群应用服务器上部署 Java EE 应用程序
Deploying Java EE application on clustered app server
当服务器集群时,应用程序将如何部署。
我不是在谈论 docker。我的意思是 WildFly/JBoss 中的域模式或 Glassfish 或 Websphere 中的集群。
集群中的每个 node/instance 是否都像一个独立的应用程序?就像我有一个 @Singleton 实例一样,它是整个集群上的一个实例还是每个节点一个实例,每个 运行 应用程序一个实例。
或者它会被视为刚刚在引擎盖下的集群上传播的一个应用程序?就像 @Singleton 在节点 X 上的某个地方,如果我从节点 Y 调用它,它将通过 tcp 或其他方式调用它(如果不使用 EJB 客户端)?
Is it occur to be like one standalone application on each
node/instance of a cluster? Like if I have a @Singleton instance will
it be the one on the whole cluster or one for each node and so one for
each running app.
假设集群设置了两个nodes/hosts(即两个JVM),将有两个副本(即每个JVM主机一个副本 ) @Singleton
个对象。
通常,单例 = 每个 Web 应用程序每个 JVM 的单个对象(实例)
换句话说,当您在同一个服务器 (JVM) 中部署多个 Web 应用程序时,您可以在 objects/instances(每个 Web 应用程序一个)中部署相同的 class相同的 JVM。
Or it will be treated like the one application just spread on a
cluster under the hood?
一般情况下,集群会搭建在两个或多个独立的主机上(为了实现弹性、负载均衡等原因),即应用程序会被部署到独立的JVM中,所以有将是每个 JVM 中 @Singleton
个对象的单独副本。
If I have nodes n1 n2 n3. And on the node n3, I''ll create some bean
with singleton injected like @Inject private SingleBean singleBean;
Will it be the singleton from node n3 only or there is some way that
the singleton from n1 may be injected?
仅 Node3 (JVM) 为单例。
如果你真的想(因为任何原因)跨 JVM 共享单例实例,你可以参考 here 了解更多细节。
当服务器集群时,应用程序将如何部署。 我不是在谈论 docker。我的意思是 WildFly/JBoss 中的域模式或 Glassfish 或 Websphere 中的集群。
集群中的每个 node/instance 是否都像一个独立的应用程序?就像我有一个 @Singleton 实例一样,它是整个集群上的一个实例还是每个节点一个实例,每个 运行 应用程序一个实例。
或者它会被视为刚刚在引擎盖下的集群上传播的一个应用程序?就像 @Singleton 在节点 X 上的某个地方,如果我从节点 Y 调用它,它将通过 tcp 或其他方式调用它(如果不使用 EJB 客户端)?
Is it occur to be like one standalone application on each node/instance of a cluster? Like if I have a @Singleton instance will it be the one on the whole cluster or one for each node and so one for each running app.
假设集群设置了两个nodes/hosts(即两个JVM),将有两个副本(即每个JVM主机一个副本 ) @Singleton
个对象。
通常,单例 = 每个 Web 应用程序每个 JVM 的单个对象(实例)
换句话说,当您在同一个服务器 (JVM) 中部署多个 Web 应用程序时,您可以在 objects/instances(每个 Web 应用程序一个)中部署相同的 class相同的 JVM。
Or it will be treated like the one application just spread on a cluster under the hood?
一般情况下,集群会搭建在两个或多个独立的主机上(为了实现弹性、负载均衡等原因),即应用程序会被部署到独立的JVM中,所以有将是每个 JVM 中 @Singleton
个对象的单独副本。
If I have nodes n1 n2 n3. And on the node n3, I''ll create some bean with singleton injected like @Inject private SingleBean singleBean; Will it be the singleton from node n3 only or there is some way that the singleton from n1 may be injected?
仅 Node3 (JVM) 为单例。
如果你真的想(因为任何原因)跨 JVM 共享单例实例,你可以参考 here 了解更多细节。