2.5. 自定义冲突解析算法
将 Data Grid 配置为使用不同的算法来解析备份位置之间的冲突条目。
流程
- 打开 Data Grid 配置以进行编辑。
-
使用 backup 元素的
merge-policy属性指定 Data Grid 算法之一或自定义实现。
使用 Data Grid 算法
在 org.infinispan.xsite.spi.XSiteMergePolicy enum 中查找所有 Data Grid 算法及其描述。
以下示例配置使用 ALWAYS_REMOVE 算法,该算法从两个站点中删除冲突条目:
<distributed-cache name="eu-customers">
<backups merge-policy="ALWAYS_REMOVE">
<backup site="LON" strategy="ASYNC"/>
</backups>
</distributed-cache>
<distributed-cache name="eu-customers">
<backups merge-policy="ALWAYS_REMOVE">
<backup site="LON" strategy="ASYNC"/>
</backups>
</distributed-cache>
使用自定义实现
创建自定义
XSiteEntryMergePolicy实现。public interface XSiteEntryMergePolicy<K, V> { CompletionStage<SiteEntry<V>> merge(K key, SiteEntry<V> localEntry, SiteEntry<V> remoteEntry); }public interface XSiteEntryMergePolicy<K, V> { CompletionStage<SiteEntry<V>> merge(K key, SiteEntry<V> localEntry, SiteEntry<V> remoteEntry); }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将完全限定类名称指定为
merge-policy属性的值,如下例所示:<distributed-cache name="eu-customers"> <backups merge-policy="org.mycompany.MyCustomXSiteEntryMergePolicy"> <backup site="LON" strategy="ASYNC"/> </backups> </distributed-cache><distributed-cache name="eu-customers"> <backups merge-policy="org.mycompany.MyCustomXSiteEntryMergePolicy"> <backup site="LON" strategy="ASYNC"/> </backups> </distributed-cache>Copy to Clipboard Copied! Toggle word wrap Toggle overflow