第 6 章 启动集群的 JBoss EAP


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

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

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

WILDFLY_SERVER_CONFIG=standalone-ec2-ha.xml
Copy to Clipboard Toggle word wrap

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

/subsystem=undertow:write-attribute(name=instance-id,value={${jboss.jvmRoute}})
Copy to Clipboard Toggle word wrap

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

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

您需要为发现创建 S3 存储桶。如需更多信息,请参阅 Amazon Simple Storage Service 文档。您可能还必须配置所需的权限。JGroups 堆栈需要绑定到 IP 地址,用于与其他节点通信。这可以通过将 Java 选项以及 S3 Java 选项添加到 /opt/rh/eap8/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
-Djboss.jgroups.aws.s3_ping.region_name=<S3_REGION_NAME>
-Djboss.jgroups.aws.s3_ping.bucket_name=<S3_BUCKET_NAME>"
Copy to Clipboard Toggle word wrap

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

流程

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

    WILDFLY_SERVER_CONFIG=domain-ec2.xml
    WILDFLY_HOST_CONFIG=host-master.xml
    Copy to Clipboard Toggle word wrap
  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>
    Copy to Clipboard Toggle word wrap
  4. 配置用户,并将用户的 secret 值添加到主机控制器实例。有关更多信息,请参阅 JBoss EAP 配置指南中的 在两台计算机上创建受管域

流程

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

    WILDFLY_HOST_CONFIG=host-slave.xml
    Copy to Clipboard Toggle word wrap
  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>
    Copy to Clipboard Toggle word wrap
    注意

    有关 S3 域控制器发现的详情,请参考 启动一个或多个实例作为主机控制器

警告

在小于 24 位或跨越多个子网复杂性的子网中运行 JBoss EAP 集群,为每个群集成员获取唯一的服务器对等 ID。

重要

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

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

警告

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

建议您通过从 mod_cluster 管理界面禁用服务器手动缩减应用集群,直到已处理的会话完成,或者安全地使用 SSH 访问实例或 Red Hat JBoss Operations Network 关闭 JBoss EAP 实例。

测试缩减的步骤不会影响您的用户体验。特定工作负载、负载均衡器和设置可能需要其他测量结果。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat