搜索

29.4. 在失败的 KIE 服务器节点上为 RUNNING 状态配置作业故障切换

download PDF

默认情况下,当在一个 KIE 服务器节点中运行多个 KIE 服务器节点时,如果一个 KIE 服务器节点失败,其他可用的 KIE 服务器节点会获取 QUEUEDRETRYING 状态来自失败的 KIE 服务器节点。但是,这些节点不会获取处于 RUNNING 状态的作业。

您可以将集群配置为在 RUNNING 状态中包含作业,以便重新排队到另一个 KIE 服务器节点。如果一个计时器在失败的 KIE 服务器节点上的进程中启动节点,则该进程仅在其中一个节点上启动。

先决条件

  • 您已为 KIE 服务器配置了红帽 JBoss EAP 集群。

流程

  1. 准备环境:

    1. 验证 standalone.xml 文件中是否存在以下扩展,并根据需要添加它们:

      <extension module="org.jboss.as.clustering.infinispan"/>
      <extension module="org.jboss.as.clustering.jgroups"/>
    2. standalone.xml 文件中,找到 & lt;subsystem xmlns="urn:jboss:domain:infinispan:9.0" > 子系统,并创建一个名为 jbpm 的缓存容器条目,其中包含一个名为 nodes 的缓存,如下例所示:

      <cache-container name="jbpm">
        <transport lock-timeout="60000"/>
        <replicated-cache name="nodes">
            <transaction mode="BATCH"/>
        </replicated-cache>
        <replicated-cache name="jobs">
            <transaction mode="BATCH"/>
        </replicated-cache>
      </cache-container>
    3. 为复制和分布式缓存添加 jgroups 子系统:

      <subsystem xmlns="urn:jboss:domain:jgroups:7.0">
          <channels default="ee">
              <channel name="ee" stack="udp" cluster="ejb"/>
          </channels>
          <stacks>
              <stack name="udp">
                  <transport type="UDP" socket-binding="jgroups-udp"/>
                  <protocol type="PING"/>
                  <protocol type="MERGE3"/>
                  <socket-protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
                  <protocol type="FD_ALL"/>
                  <protocol type="VERIFY_SUSPECT"/>
                  <protocol type="pbcast.NAKACK2"/>
                  <protocol type="UNICAST3"/>
                  <protocol type="pbcast.STABLE"/>
                  <protocol type="pbcast.GMS"/>
                  <protocol type="UFC"/>
                  <protocol type="MFC"/>
                  <protocol type="FRAG3"/>
                </stack>
                <stack name="tcp">
                  <transport type="TCP" socket-binding="jgroups-tcp"/>
                  <socket-protocol type="MPING" socket-binding="jgroups-mping"/>
                  <protocol type="MERGE3"/>
                  <socket-protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
                  <protocol type="FD_ALL"/>
                  <protocol type="VERIFY_SUSPECT"/>
                  <protocol type="pbcast.NAKACK2"/>
                  <protocol type="UNICAST3"/>
                  <protocol type="pbcast.STABLE"/>
                  <protocol type="pbcast.GMS"/>
                  <protocol type="MFC"/>
                  <protocol type="FRAG3"/>
                </stack>
            </stacks>
          </subsystem>
    4. 配置以下接口:

      <interface name="private">
          <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
      </interface>
    5. 配置以下套接字:

      <socket-binding name="jgroups-mping" interface="private" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
      
        <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
        <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/>
        <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
        <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
  2. 将 Infinispan 扩展添加到 KIE 服务器:

    1. 在文本编辑器中打开 kie-server.war/WEB-INF/jboss-deployment-structure.xml 文件,并在文件中添加以下依赖项:

          <module name="org.infinispan" services="export"/>
          <module name="org.jgroups" />
    2. 下载 JAR 文件。

      1. 进入红帽客户门户网站中的 Software Downloads 页面(需要登录),然后从下拉列表中选择产品和版本:

        • 产品: 流程自动化管理器
        • Version: 7.13.5
      2. 下载 Red Hat Process Automation Manager 7.13.5 Maven 存储库 (rhpam-7.13.5-maven-repository.zip)并提取 ZIP 文件。
      3. 导航到包含提取的文件的目录,并将 maven-repository/org/kie/server/kie-server-services-jbpm-cluster/7.67.0.Final-redhat-00024/kie-server-services-jbpm-cluster-7.67.0.Final-redhat-00024.jar 文件复制到 kie-server.war/WEB-INF/lib 目录中。

现在,集群被配置为在 RUNNING 状态下为作业使用故障转移。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.