第 6 章 启动集群的 JBoss EAP
6.1. 启动没有 mod_cluster 和 VPC 的集群的 JBoss EAP AMI 复制链接链接已复制到粘贴板!
本节列出了在没有 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
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}})
/subsystem=undertow:write-attribute(name=instance-id,value={${jboss.jvmRoute}})
然后,可以使用 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>"
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>"
您可以部署一个示例应用程序: /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 服务器已创建了集群。
6.1.1. 为域控制器实例启动没有 mod_cluster 和 VPC 的集群 AMI 复制链接链接已复制到粘贴板!
流程
-
将
domain-ec2.xml
文件从/opt/rh/eap8/root/usr/share/wildfly/docs/examples/configs
复制到 JBoss EAP 配置目录中。 在适当的服务配置文件中设置以下变量:
WILDFLY_SERVER_CONFIG=domain-ec2.xml WILDFLY_HOST_CONFIG=host-master.xml
WILDFLY_SERVER_CONFIG=domain-ec2.xml WILDFLY_HOST_CONFIG=host-master.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
host-master.xml
文件中添加 S3 域控制器发现配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 配置用户,并将用户的 secret 值添加到主机控制器实例。有关更多信息,请参阅 JBoss EAP 配置指南中的 在两台计算机上创建受管域。
6.1.2. 为主机控制器启动没有 mod_cluster 和 VPC 的集群 AMI 复制链接链接已复制到粘贴板!
流程
在适当的服务配置文件中设置以下变量:
WILDFLY_HOST_CONFIG=host-slave.xml
WILDFLY_HOST_CONFIG=host-slave.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
host-slave.xml
文件中添加 S3 域控制器发现配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有关 S3 域控制器发现的详情,请参考 启动一个或多个实例作为主机控制器。
在小于 24 位或跨越多个子网复杂性的子网中运行 JBoss EAP 集群,为每个群集成员获取唯一的服务器对等 ID。
自动扩展 Amazon EC2 功能可用于 JBoss EAP 集群节点。但是,请确保在部署前测试它。您应该确保特定工作负载扩展到所需节点数,并且性能满足您计划使用的实例类型的需求,不同的实例类型会收到 EC2 云资源的不同共享。
另外,实例本地性和当前网络/存储/主机机器/RDS 使用率可能会影响集群性能。使用预期的实时负载进行测试,并尝试考虑意外状况。
Amazon EC2 缩减 操作在不进行安全关闭的情况下终止节点,因为有些事务可能会中断,其他集群节点和负载均衡器需要时间故障转移。这可能会影响您的应用程序用户体验。
建议您通过从 mod_cluster 管理界面禁用服务器手动缩减应用集群,直到已处理的会话完成,或者安全地使用 SSH 访问实例或 Red Hat JBoss Operations Network 关闭 JBoss EAP 实例。
测试缩减的步骤不会影响您的用户体验。特定工作负载、负载均衡器和设置可能需要其他测量结果。