11.4. 自定义 JGroups 堆栈
调整和调优属性,以创建适用于您的网络要求的集群传输配置。
数据网格提供属性,使您能够扩展默认的 JGroups 堆栈以简化配置。您可以在组合、删除和替换其他属性的同时从默认堆栈中继承属性。
流程
-
在
infinispan.xml
文件中创建一个新的 JGroups 堆栈声明。 -
添加
extend
属性,并指定 JGroups 堆栈来继承属性。 -
使用
stack.combine
属性修改继承堆栈中配置的协议属性。 -
使用
stack.position
属性定义自定义堆栈的位置。 将堆栈名称指定为
传输
配置中stack
属性的值。例如,您可以使用默认 TCP 堆栈使用 Gossip 路由器和对称加密进行评估,如下所示:
<infinispan> <jgroups> <!-- Creates a custom JGroups stack named "my-stack". --> <!-- Inherits properties from the default TCP stack. --> <stack name="my-stack" extends="tcp"> <!-- Uses TCPGOSSIP as the discovery mechanism instead of MPING --> <TCPGOSSIP initial_hosts="${jgroups.tunnel.gossip_router_hosts:localhost[12001]}" stack.combine="REPLACE" stack.position="MPING" /> <!-- Removes the FD_SOCK2 protocol from the stack. --> <FD_SOCK2 stack.combine="REMOVE"/> <!-- Modifies the timeout value for the VERIFY_SUSPECT2 protocol. --> <VERIFY_SUSPECT2 timeout="2000"/> <!-- Adds SYM_ENCRYPT to the stack after VERIFY_SUSPECT2. --> <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_SUSPECT2" /> </stack> <cache-container name="default" statistics="true"> <!-- Uses "my-stack" for cluster transport. --> <transport cluster="${infinispan.cluster.name}" stack="my-stack" node-name="${infinispan.node.name:}"/> </cache-container> </jgroups> </infinispan>
检查 Data Grid 日志,以确保其使用堆栈。
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack
参考
- JGroup 集群传输配置 Data Grid 8.x (红帽知识库文章)
11.4.1. 继承属性
当您扩展 JGroups 堆栈时,继承属性可让您调整您要扩展的堆栈中的协议和属性。
-
stack.position
指定要修改的协议。 stack.combine
使用以下值来扩展 JGroups 堆栈:值 Description 组合
覆盖协议属性。
替换
替换协议。
INSERT_AFTER
在另一个协议后向堆栈中添加协议。不会影响您指定为插入点的协议。
JGroups 堆栈中的协议根据它们在堆栈中的位置相互影响。例如,您应该在
SYM_ENCRYPT
或ASYM_ENCRYPT
协议后面放置 等协议,以便NAKACK2
INSERT_BEFORE
在其他协议前,将协议插入到堆栈中。影响您指定为插入点的协议。
删除
从堆栈中删除协议。