7.12. Jakarta Enterprise Beans on OpenShift 的 Remoting
要使 JBoss EAP 能够在 OpenShift 上的不同 JBoss EAP 集群之间正确地使用企业 bemoting 调用,您必须了解 OpenShift 上的企业 bean remoting 配置选项。
在 OpenShift 上部署时,请考虑使用 EAP 操作器。EAP 操作员使用 StatefulSet 来处理企业 bean remoting 和事务恢复处理。StatefulSet 确保持久性存储和网络主机名稳定性,即使 pod 重启后也是如此。
使用企业级 bean 远程调用和事务传播联系时,需要网络主机名稳定性。即使 pod 重启,OpenShift EAP 实例也必须在相同的主机名下访问。事务管理器(一个有状态组件)将持久的事务数据绑定到特定的 JBoss EAP 实例。由于事务日志绑定到特定的 JBoss EAP 实例,它必须在同一实例中完成。
要在使用 JDBC 事务日志存储时防止数据丢失,请确保您的数据库提供了数据一致性的读取和写入。当数据库通过多个实例水平扩展时,一致的数据读取和写入非常重要。
企业 bean 远程调用者有两个选项来配置远程调用:
- 定义远程出站连接。如需更多信息,请参阅配置远程出站连接。
- 对远程服务器中的 bean 使用编程 JNDI 查找。如需更多信息,请参阅使用远程 Jakarta Enterprise Beans 客户端。
您必须根据企业 bean 远程调用配置方法重新配置代表目标节点地址的值。
远程调用的目标企业级名称必须是第一个 pod 的 DNS 地址。
StatefulSet 的行为取决于 pod 的排序。pod 以预定义的顺序命名。例如,如果您将应用扩展到三个副本,您的 pod 的名称为 eap-server-0、eap-server-1 和 eap-server-2。
EAP 操作器也使用 无头服务 来确保特定的 DNS 主机名被分配给 pod。如果应用使用 EAP 操作器,则使用名称(如 eap-server-headless )创建一个无头服务。在本例中,第一个 pod 的 DNS 名称为 eap-server-0.eap-server-headless。
使用 hostname eap-server-0.eap-server-headless 可确保企业 bean 调用到达连接到集群的任何 EAP 实例。bootstrap 连接用于初始化 Jakarta Enterprise Beans 客户端,它将 EAP 集群的结构收集为下一步。
7.12.1. 在 OpenShift 上配置 Jakarta Enterprise Beans 复制链接链接已复制到粘贴板!
您必须配置作为企业级补救的调用者的 JBoss EAP 服务器。目标服务器必须配置有权限的用户,才能接收企业 bean 远程调用。
先决条件
- 您已使用 EAP 操作器和支持的 OpenShift S2I 镜像,用于在 OpenShift 中部署和管理 JBoss EAP 应用实例。
- 集群设置正确。有关 JBoss EAP 集群的更多信息,请参阅集群部分。
流程
在目标服务器上创建一个用户,并有权接收企业 bean 远程调用:
$JBOSS_HOME/bin/add-user.sh
$JBOSS_HOME/bin/add-user.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置调用 JBoss EAP 应用服务器。
-
使用自定义配置功能,在
$JBOSS_HOME/standalone/configuration中创建eap-config.xml文件。如需更多信息,请参阅 自定义配置。 使用
wildfly.config.url属性配置调用器 JBoss EAP 应用服务器:JAVA_OPTS_APPEND="-Dwildfly.config.url=$JBOSS_HOME/standalone/configuration/eap-config.xml"
JAVA_OPTS_APPEND="-Dwildfly.config.url=$JBOSS_HOME/standalone/configuration/eap-config.xml"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的配置使用以下示例,请将
>>PASTE_…_HERE<<替换为您配置的用户名和密码。配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
使用自定义配置功能,在