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


默认情况下,当多个 KIE Server 节点在集群中运行时,如果一个 KIE Server 节点失败,其他可用的 KIE 服务器节点会从失败的 KIE Server 节点获取 QUEUEDRETRYING 状态的任何作业。但是,这些节点不会获取处于 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 的缓存以及一个名为 jobs 的缓存,如下例所示:

      <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.12
      2. 下载 Red Hat Process Automation Manager 7.12.0 Maven Repository (rhpam-7.12.0-maven-repository.zip)并提取 ZIP 文件。
      3. 导航到包含提取的文件的目录,并将 maven-repository/org/kie/kie/server/kie-server-services-jbpm-cluster/7.59.0.Final-redhat-00006/kie-server-services-jbpm-cluster-7.59.0.Final-redhat-00006.jar 文件复制到 kie-server.war/WEB-INF/lib 目录。

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.