7.3. 配置分区处理


配置 Data Grid 以使用分区处理策略和合并策略,以便在出现网络问题时解决分割集群。默认情况下,数据网格使用一种可降低数据一致性保障的策略。当因为网络分区客户端造成集群分离时,您可以继续在缓存上执行读写操作。

如果可用性需要一致性,您可以配置 Data Grid,以拒绝将集群分成分区的读写操作。另外,您可以允许读取操作并拒绝写操作。您还可以指定配置 Data Grid 的自定义合并策略实现,使用根据您的要求定制的逻辑进行拆分。

先决条件

  • 具有数据网格集群,您可以创建复制或分布式缓存。

    注意

    分区处理配置仅适用于复制和分布式缓存。

流程

  1. 打开 Data Grid 配置进行编辑。
  2. 使用分区操作元素或分区 Handling () 方法向缓存添加分区 处理 配置。
  3. 指定在集群通过 when-split 属性或 whenSplit () 方法分割为分区时使用的 Data Grid 策略。

    默认分区处理策略是 ALLOW_READ_WRITES,因此缓存仍保持vailabile。如果您的用例需要缓存可用性的数据一致性,请指定 DENY_READ_WRITES 策略。

  4. 指定在使用 merge-policy 属性或 mergePolicy () 方法合并分区时,Data Grid 用来解析冲突条目的策略。

    默认情况下,数据网格无法解决合并上的冲突。

  5. 保存对 Data Grid 配置的更改。

分区处理配置

XML

<distributed-cache>
   <partition-handling when-split="DENY_READ_WRITES"
                       merge-policy="PREFERRED_ALWAYS"/>
</distributed-cache>

JSON

{
  "distributed-cache": {
    "partition-handling" : {
      "when-split": "DENY_READ_WRITES",
      "merge-policy": "PREFERRED_ALWAYS"
    }
  }
}

YAML

distributedCache:
  partitionHandling:
    whenSplit: DENY_READ_WRITES
    mergePolicy: PREFERRED_ALWAYS

ConfigurationBuilder

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC)
       .partitionHandling()
       .whenSplit(PartitionHandling.DENY_READ_WRITES)
       .mergePolicy(MergePolicy.PREFERRED_NON_NULL);

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.