5.2. 自定义 JGroups 堆栈


调整和调优属性,以创建适合您的网络要求的集群传输配置。

Data Grid 提供可让您扩展默认 JGroups 堆栈以方便配置的属性。您可以在合并、删除和替换其他属性时从默认堆栈继承属性。

流程

  1. infinispan.xml 文件中创建一个新的 JGroups 堆栈声明。

    <infinispan>
      <jgroups>
        <stack name="my-stack"> 
    1
    
        </stack>
      </jgroups>
    </infinispan>
    Copy to Clipboard Toggle word wrap
    1
    创建名为"my-stack"的自定义 JGroups 堆栈。
  2. 添加 extends 属性,并指定 JGroups 堆栈来继承属性。

    <infinispan>
      <jgroups>
        <stack name="my-stack" extends="tcp"> 
    1
    
        </stack>
      </jgroups>
    </infinispan>
    Copy to Clipboard Toggle word wrap
    1
    从默认的 TCP 堆栈继承。
  3. 使用 stack.combine 属性修改继承堆栈中配置的协议的属性。
  4. 使用 stack.position 属性定义自定义堆栈的位置。

    例如,您可以使用 Gossip 路由器和使用默认 TCP 堆栈的对称加密来评估,如下所示:

    <jgroups>
      <stack name="my-stack" extends="tcp">
        <TCPGOSSIP initial_hosts="${jgroups.tunnel.gossip_router_hosts:localhost[12001]}"
                 stack.combine="REPLACE"
                 stack.position="MPING" /> 
    1
    
        <FD_SOCK stack.combine="REMOVE"/> 
    2
    
        <VERIFY_SUSPECT timeout="2000"/> 
    3
    
        <SYM_ENCRYPT sym_algorithm="AES"
                     keystore_name="mykeystore.p12"
                     keystore_type="PKCS12"
                     store_password="changeit"
                     key_password="changeit"
                     alias="myKey"
                     stack.combine="INSERT_AFTER"
                     stack.position="VERIFY_SUSPECT" /> 
    4
    
      </stack>
    </jgroups>
    Copy to Clipboard Toggle word wrap
    1
    使用 TCPGOSSIP 协议作为发现机制,而不是 MPING
    2
    从堆栈中删除 FD_SOCK 协议。
    3
    修改 VERIFY_SUSPECT 协议的超时值。
    4
    VERIFY_SUSPECT 协议后,将 SYM_ENCRYPT 协议添加到堆栈中。
  5. 指定堆栈名称,作为 传输 配置中 stack 属性的值。

    <infinispan>
      <jgroups>
        <stack name="my-stack" extends="tcp">
         ...
        </stack>
        <cache-container name="default" statistics="true">
          <transport cluster="${infinispan.cluster.name}"
                     stack="my-stack" 
    1
    
                     node-name="${infinispan.node.name:}"/>
       </cache-container>
      </jgroups>
    </infinispan>
    Copy to Clipboard Toggle word wrap
    1
    配置 Data Grid,以将 "my-stack" 用于集群传输。
  6. 检查 Data Grid 日志,以确保它使用堆栈。

    [org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack
    Copy to Clipboard Toggle word wrap

参考

5.2.1. 继承属性

当您扩展 JGroups 堆栈时,继承属性允许您调整您要扩展的堆栈中的协议和属性。

  • stack.position 指定要修改的协议。
  • stack.combine 使用以下值来扩展 JGroups 堆栈:

    Expand
    描述

    组合

    覆盖协议属性。

    REPLACE

    替换协议。

    INSERT_AFTER

    在另一个协议后将协议添加到堆栈中。不会影响指定为插入点的协议。

    JGroups 堆栈中的协议会根据堆栈中的位置相互影响。例如,您应该在 SYM_ENCRYPTASYM_ENCRYPT 协议后放置 NAKACK2 等协议,以便保护 NAKACK2

    删除

    从堆栈中删除协议。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat