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

时间:2017-03-25 07:53:39

标签: java java-ee ejb cluster-computing

如何在群集服务器时部署应用程序。 我不是在谈论码头工人。我指的是WildFly / JBoss中的域模式或Glassfish或Websphere中的集群。

是否会像群集的每个节点/实例上的一个独立应用程序一样?就像我有一个@Singleton实例一样,它将是整个集群中的实例,或者是每个节点的实例,因此对于每个正在运行的应用程序都是一个。

或者它会被视为一个应用程序只是在引擎盖下的集群上传播?就像@Singleton在节点X上的某处,如果我从节点Y调用它,它将通过tcp或其他东西调用它(如果没有使用EJB客户端)?

1 个答案:

答案 0 :(得分:1)

  

是否就像每个应用程序上的一个独立应用程序一样   群集的节点/实例?就像我有一个@Singleton实例一样   它是整个集群中的一个或每个节点一个,因此一个   每个正在运行的应用程序。

假设集群已经设置了两个节点/主机(即两个JVM),{{1}将有两个副本(即每个JVM主机中的一个副本)对象。

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

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

  

或者它将被视为一个应用程序只是传播到一个   引擎盖下的集群?

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

  

如果我有节点n1 n2 n3。在节点n3上,我将创建一些bean   注入单例,如@Inject private SingleBean singleBean;   它只是来自节点n3的单例还是有某种方式   可以注入来自n1的单身?

它只是Node3(JVM)的单例。

如果您真的希望在JVM上共享(因为任何原因)单例实例,可以参考here了解更多详细信息。