第 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

© 2026 Red Hat
返回顶部