4.3. 为锁定配置内部缓存
集群锁定管理器包括存储锁定状态的内部缓存。您可以以声明性方式或以编程方式配置内部缓存。
流程
-
定义存储集群锁定状态的集群中的节点数量。默认值为 -1,这会将值复制到所有节点。
为缓存可靠性指定以下值之一,它控制集群锁在集群分成分区或多个节点时的行为方式:
-
AVAILABLE:任何分区中的节点可以在锁定上同时操作。 -
CONSISTENT:只有属于大多数分区的节点才能在锁定上运行。这是默认值。 编程配置
import org.infinispan.lock.configuration.ClusteredLockManagerConfiguration; import org.infinispan.lock.configuration.ClusteredLockManagerConfigurationBuilder; import org.infinispan.lock.configuration.Reliability; ... GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder(); final ClusteredLockManagerConfiguration config = global.addModule(ClusteredLockManagerConfigurationBuilder.class).numOwner(2).reliability(Reliability.AVAILABLE).create(); DefaultCacheManager cm = new DefaultCacheManager(global.build()); ClusteredLockManager clm1 = EmbeddedClusteredLockManagerFactory.from(cm); clm1.defineLock("lock");声明配置
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:13.0 https://infinispan.org/schemas/infinispan-config-13.0.xsd" xmlns="urn:infinispan:config:13.0"> <cache-container default-cache="default"> <transport/> <local-cache name="default"> <locking concurrency-level="100" acquire-timeout="1000"/> </local-cache> <clustered-locks xmlns="urn:infinispan:config:clustered-locks:13.0" num-owners = "3" reliability="AVAILABLE"> <clustered-lock name="lock1" /> <clustered-lock name="lock2" /> </clustered-locks> </cache-container> <!-- Cache configuration goes here. --> </infinispan>
-