搜索

7.8. OpenShift 上的 EJB 移除

download PDF

要使 JBoss EAP 正确处理 OpenShift 上的不同 JBoss EAP 集群之间的 EJB 远程调用,您必须了解 OpenShift 上的 EJB 远程配置选项。

注意

在 OpenShift 上部署时,请考虑使用 EAP 操作器:EAP 操作器使用 StatefulSet 来适当处理 EJB 远程处理和事务恢复处理。StatefulSet 确保 持久性存储和网络主机名的稳定性,即使在 pod 重启后也是如此。

当使用带有事务传播的 EJB 远程调用联系 JBoss EAP 实例时,需要保持网络主机名稳定性。即使 pod 重新启动,也必须在同一主机名下访问 JBoss EAP 实例。事务管理器是一个有状态的组件,可将持久交易数据绑定到特定的 JBoss EAP 实例。由于事务日志绑定到特定的 JBoss EAP 实例,它必须在同一实例中完成。

为防止使用 JDBC 事务日志存储时数据丢失,请确保您的数据库提供一致的数据读取和写入。当数据库横向扩展时,数据读写的一致性非常重要。

EJB 远程调用器有两个选项可用于配置远程调用:

您必须根据 EJB 远程调用配置方法重新配置代表目标节点地址的值。

注意

远程调用的目标 EJB 的名称必须是第一个容器集的 DNS 地址。

StatefulSet 强制取决于 pod 的顺序。容器集按照预定义的顺序命名。例如,如果您将应用缩放为三个副本,您的容器集的名称为 eap-server-0eap-server-1eap-server-2

EAP 操作器也使用无头服务来确保为 pod 分配特定的 DNS 主机名。如果应用使用 EAP 操作器,则会使用名称(如 eap-server-headless )创建无头服务。在本例中,第一个容器集的 DNS 名称为 eap-server-0.eap-server-headless

使用主机名 eap-server-0.eap-server-headless 可确保 EJB 调用到达与集群连接的任何 EAP 实例。Bootstrap 连接用于初始化 EJB 客户端,它将在下一步收集 EAP 集群的结构。

7.8.1. 在 OpenShift 中配置 EJB

您必须配置充当 EJB 远程调用者的 JBoss EAP 服务器。目标服务器必须配置有权接收 EJB 远程调用的用户。

先决条件

流程

  1. 在目标服务器中创建有权接收 EJB 远程调用的用户:

    $JBOSS_HOME/bin/add-user.sh
  2. 配置调用者 JBoss EAP 应用服务器。

    1. 使用自定义配置功能,在 $JBOSS_HOME/standalone/configuration 中创建 eap-config.xml 文件。如需更多信息,请参阅自定义配置
    2. 使用 wildfly.config.url 属性配置调用者 JBoss EAP 应用服务器:

      JAVA_OPTS_APPEND="-Dwildfly.config.url=$JBOSS_HOME/standalone/configuration/eap-config.xml"
      注意

      如果您在配置中使用以下示例,请将 >>PASTE_…​_HERE<< 替换为您配置的用户和密码。

      配置示例

      <configuration>
        <authentication-client xmlns="urn:elytron:1.0">
        <authentication-rules>
                <rule use-configuration="jta">
                    <match-abstract-type name="jta" authority="jboss"/>
            </rule>
            </authentication-rules>
            <authentication-configurations>
             <configuration name="jta">
                     <sasl-mechanism-selector selector="DIGEST-MD5"/>
                     <providers>
                         <use-service-loader />
                 </providers>
             <set-user-name name=">>PASTE_USER_NAME_HERE<<"/>
                 <credentials>
                          <clear-password password=">>PASTE_PASSWORD_HERE<<"/>
                 </credentials>
                     <set-mechanism-realm name="ApplicationRealm" />
                 </configuration>
            </authentication-configurations>
        </authentication-client>
      </configuration>

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.