第 5 章 启动集群 JBoss EAP


本主题列出了在没有 mod_cluster 和 VPC 的情况下启动集群 JBoss EAP AMI 的步骤。

注意
  • 您可以使用镜像提供的示例配置脚本。

有关系统路径的详情,请参阅系统路径

如需了解有关为 Amazon EC2 配置 JBoss EAP 子系统的信息,请参阅将 JBoss EAP 子系统配置为在云平台上工作

要在单机服务器实例上启动集群的 JBoss EAP AMI,您可以使用示例 /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/standalone-ec2-ha.xml 文件,其中包含预配置的 S3_PING JGroups 堆栈。如需更多信息,请参阅与 JGroups 可靠的组通信中的 S3_PING。此 standalone-ec2-ha.xml 配置文件必须从 /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs/ 复制到 JBoss EAP 配置目录 /opt/rh/eap7/root/usr/share/wildfly/standalone/configuration/。然后,您必须将以下行添加到 JBoss EAP 服务配置文件中:

WILDFLY_SERVER_CONFIG=standalone-ec2-ha.xml

需要为 undertow 子系统中的每个单机服务器实例设置唯一的 instance-id。可以通过编辑 standalone -ec2-ha.xml 文件或使用管理 CLI 手动设置 instance- id 的值。例如,您可以使用管理 CLI 设置 instance-id,如下所示:

/subsystem=undertow:write-attribute(name=instance-id,value={${jboss.jvmRoute}})

然后,可以使用 JAVA_OPTS 变量在 standalone.conf 中指定 jboss.jvmRoute 的值。

EC2 配置文件中的 jgroups 子系统需要一些 S3_PING 特定属性来发现群集成员。您必须指定要用于发现的 S3、secret access key 和 S3 存储桶的访问密钥。这些属性可以指定为 Java 选项,或者通过编辑或 CLI 直接放入 XML 文件中。

您需要创建一个 S3 存储桶来发现。如需更多信息,请参阅 Amazon Simple Storage Service 文档。您可能还必须配置所需的权限。JGroups 堆栈需要绑定到 IP 地址,用于与其他节点通信。这可以通过添加 Java 选项以及 S3 Java 选项到 /opt/rh/eap7/root/usr/share/wildfly/bin/standalone.conf 文件来完成。例如,如果专用 IP 地址为 10.10.10.10,则需要在 standalone.conf 文件中添加以下行:

JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.private=10.10.10.10"

您可以部署一个示例应用: /opt/rh/eap7/root/usr/share/java/eap7-jboss-ec2-eap-samples/cluster-demo.war 并观察 /opt/rh/eap7/root/usr/share/wildfly/standalone/log/server.log 中的日志,查看 JBoss EAP 服务器是否已创建了集群。

对于域控制器实例

  1. domain-ec2.xml 文件从 /opt/rh/eap7/root/usr/share/wildfly/docs/examples/configs 复制到 JBoss EAP 配置目录中。
  2. 在适当的服务配置文件中设置以下变量:

    WILDFLY_SERVER_CONFIG=domain-ec2.xml
    WILDFLY_HOST_CONFIG=host-master.xml
  3. host-master.xml 文件中添加 S3 域控制器发现配置:

    <local>
        <discovery-options>
            <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery">
                <property name="access-key" value="S3_ACCESS_KEY"/>
                <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/>
                <property name="location" value="S3_BUCKET_NAME"/>
            </discovery-option>
        </discovery-options>
    </local>
  4. 配置用户,并将用户的机密值添加到主机控制器实例。如需更多信息,请参阅《JBoss EAP 配置指南 https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.3/html-single/configuration_guide/#create_a_managed_domain_on_two_machines 》中的在两台机器上创建受管域

对于主机控制器实例

  1. 在适当的服务配置文件中设置以下变量:

    WILDFLY_HOST_CONFIG=host-slave.xml
  2. host-slave.xml 文件中添加 S3 域控制器发现配置:

    <remote security-realm="ManagementRealm">
        <discovery-options>
            <discovery-option name="s3-discovery" module="org.jboss.as.host-controller" code="org.jboss.as.host.controller.discovery.S3Discovery">
                <property name="access-key" value="S3_ACCESS_KEY"/>
                <property name="secret-access-key" value="S3_SECRET_ACCESS_KEY"/>
                <property name="location" value="S3_BUCKET_NAME"/>
            </discovery-option>
        </discovery-options>
    </remote>
    注意
警告

在网络掩码小于 24 位或跨多个子网的子网中运行 JBoss EAP 群集会使每个群集成员获取唯一的服务器对等 ID。

重要

自动缩放 Amazon EC2 功能可用于 JBoss EAP 群集节点。不过,请确保它在部署前经过测试。您应该确保您的特定工作负载扩展到所需的节点数量,并确保性能满足您计划使用的实例类型的需求,不同的实例类型会收到 EC2 云资源的不同共享。

此外,实例本地性和当前网络/存储/主机计算机/RDS 利用率可能会影响群集性能。使用您预期的实时负载测试,并尝试考虑意外状况。

警告

Amazon EC2 缩减操作会在没有任何机会正常关闭节点的情况下终止节点,因为可能会中断一些事务,其他集群节点和负载均衡器则需要时间来故障转移。这可能会影响您的应用程序用户体验。

建议您通过从 mod_cluster 管理界面禁用服务器,直到完成的会话完成,手动缩减应用群集,或者通过 SSH 访问实例或红帽 JBoss 运营网络安全地关闭 JBoss EAP 实例。

测试您的缩减流程不会对用户体验造成负面影响。特定的工作负载、负载均衡器和设置可能需要额外的测量结果。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部