4.2. 自定义 JGroups 堆栈
调整和调优属性,以创建适合您的网络要求的集群传输配置。
Data Grid 提供可让您扩展默认 JGroups 堆栈以方便配置的属性。您可以在合并、删除和替换其他属性时从默认堆栈继承属性。
流程
在
infinispan.xml文件中创建一个新的 JGroups 堆栈声明。<infinispan> <jgroups> <stack name="my-stack">1 </stack> </jgroups> </infinispan>- 1
- 创建名为"my-stack"的自定义 JGroups 堆栈。
添加
extends属性,并指定 JGroups 堆栈来继承属性。<infinispan> <jgroups> <stack name="my-stack" extends="tcp">1 </stack> </jgroups> </infinispan>- 1
- 从默认的 TCP 堆栈继承。
-
使用
stack.combine属性修改继承堆栈中配置的协议的属性。 使用
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>指定堆栈名称,作为
传输配置中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>- 1
- 配置 Data Grid,以将 "my-stack" 用于集群传输。
检查 Data Grid 日志,以确保它使用堆栈。
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack
参考
- Data Grid 8.x 的 JGroups 集群传输配置 (红帽知识库文章)
4.2.1. 继承属性 复制链接链接已复制到粘贴板!
当您扩展 JGroups 堆栈时,继承属性允许您调整您要扩展的堆栈中的协议和属性。
-
stack.position指定要修改的协议。 stack.combine使用以下值来扩展 JGroups 堆栈:Expand 值 描述 组合覆盖协议属性。
REPLACE替换协议。
INSERT_AFTER在另一个协议后将协议添加到堆栈中。不会影响指定为插入点的协议。
JGroups 堆栈中的协议会根据堆栈中的位置相互影响。例如,您应该在
SYM_ENCRYPT或ASYM_ENCRYPT协议后放置NAKACK2等协议,以便保护NAKACK2。删除从堆栈中删除协议。