7.3. 配置分区处理


将 Data Grid 配置为使用分区处理策略和合并策略,以便在发生网络问题时解析分割集群。默认情况下,Data Grid 使用一种策略,以降低数据一致性保证成本来提供可用性。当因为网络分区客户端造成集群分割时,客户端可以继续对缓存执行读写操作。

如果您需要在可用性上一致性,您可以将 Data Grid 配置为在集群分割为分区时拒绝读写操作。或者,您可以允许读操作和拒绝写操作。您还可以指定配置 Data Grid 的自定义合并策略实现,以使用根据您的要求定制的自定义逻辑来解析分割。

先决条件

  • 有一个 Data Grid 集群,您可以在其中创建复制或分布式缓存。

    注意

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

流程

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

    默认分区处理策略是 ALLOW_READ_WRITES,因此缓存仍可使用。如果您的用例需要缓存可用性的数据一致性,请指定 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.