8.3. 部署集群 Jakarta Enterprise Beans

JBoss EAP 7.4 的 HA 配置文件中提供了集群支持。启动启用了 HA 功能的单机服务器涉及从 standalone-ha.xml 或 standalone- full-ha.xml 文件启动它:

$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml

这将启动具有 HA 功能的服务器的单个实例。

要查看群集的优势,您将需要多个服务器实例。因此,让我们启动具有 HA 功能的另一台服务器。该服务器的另一个实例可以在同一台计算机上,也可以位于其他计算机上。如果它位于同一台机器上,则需要处理两个问题:

  • 为第二个实例传递端口偏移
  • 确保每个服务器实例都具有唯一的 jboss.node.name 系统属性。

您可以通过将以下两个系统属性传递给启动命令来做到这一点:

$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.socket.binding.port-offset=PORT_OFFSET -Djboss.node.name=UNIQUE_NODE_NAME

遵循您也习惯于将 Jakarta 企业 Bean 部署至该实例的方法。

警告

仅将应用部署到群集服务器独立实例的一个节点上,并不意味着它将自动部署到其他集群实例。您还必须明确将它部署到其他独立集群实例上。或者,您可以在域模式中启动服务器,以便将部署部署到服务器组中的所有服务器上。

现在,您已在两个实例上部署了集群 Jakarta Enterprise Beans 的应用程序,Jkarta 企业 Bean 现在能够利用集群功能。

注意

从 JBoss EAP 7 开始,如果使用 HA 配置文件启动 JBoss EAP,则将复制有状态会话 Bean 的状态。您不再需要使用 @Clustered 注释来启用集群行为。

您可以通过在 @Stateful 注释中将 passivationCapable 设置为 false 来为有状态会话 Bean 禁用复制:

@Stateful(passivationCapable=false)

这会指示服务器使用 passivation-disabled-cache-ref 定义的 ejb 缓存, 而不是 cache-ref

要全局禁用有状态会话 Bean 的复制,请使用以下管理 CLI 命令:

/subsystem=ejb3:write-attribute(name=default-sfsb-cache,value=simple)