第 3 章 迁移 Data Grid 配置


查找影响迁移到 Data Grid 8 的 Data Grid 配置的更改。

3.1. Data Grid 缓存配置

默认情况下,Data Grid 8 提供空的缓存容器。当您启动 Data Grid 时,它会实例化一个缓存管理器,以便在运行时创建缓存。

但是,与之前的版本相比,开箱即用"默认"缓存。

在 Data Grid 8 中,通过 CacheContainerAdmin API 创建的缓存是永久的,以确保集群重启后保留。

永久缓存

.administration()
   .withFlags(AdminFlag.PERMANENT) 1
   .getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
1
AdminFlag.PERMANENT 默认是启用的,以确保重新启动后缓存。

在创建缓存时,您不需要设置此标志。但是,您必须将持久性存储单独添加到 Data Grid 中,以便数据重启后保留,例如:

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
   .addSingleFileStore()
   .location("/tmp/myDataStore")
   .maxEntries(5000);

volatile 缓存

.administration()
   .withFlags(AdminFlag.VOLATILE) 1
   .getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC"); 2
1
设置 VOLATILE 标志,以便在数据网格重启时缓存丢失。
2
返回名为 "myTemporaryCache" 的缓存,或使用 DIST_SYNC 模板创建一个缓存。

Data Grid 8 为服务器安装提供缓存模板,您可以使用它来创建带有推荐的设置的缓存。

您可以获取可用缓存模板列表,如下所示:

  • 通过 CLI 使用 Tab 自动完成功能:

    [//containers/default]> create cache --template=
  • 使用 REST API:

    GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates

3.1.1. 缓存编码

当您创建远程缓存时,您应该为键和值配置 MediaType。配置 MediaType 为您的数据保证存储格式。

要对缓存进行编码,您可以在配置中指定 MediaType。除非您有其他要求,否则应使用 ProtoStream,它以语言中立、向后兼容的格式存储数据。

<encoding media-type="application/x-protostream"/>

使用编码的分布式缓存配置

<infinispan>
    <cache-container>
        <distributed-cache name="myCache" mode="SYNC">
          <encoding media-type="application/x-protostream"/>
           ...
        </distributed-cache>
    </cache-container>
</infinispan>

如果您不对远程缓存进行编码,Data Grid 服务器会记录以下信息:

WARN  (main) [org.infinispan.encoding.impl.StorageConfigurationManager] ISPN000599: Configuration for cache 'mycache' does not define the encoding for keys or values. If you use operations that require data conversion or queries, you should configure the cache with a specific MediaType for keys or values.

在以后的版本中,对进行数据转换的操作需要缓存编码;例如,缓存索引和搜索数据容器、远程任务执行、读取和写入来自 Hot Rod 和 REST 端点的不同格式的数据,以及使用远程过滤器、转换器和监听器。

3.1.2. 缓存健康状态

Data Grid 7.x 包括一个 Health Check API,它返回集群的健康状况以及其中的缓存。

Data Grid 8 还提供 Health API。对于嵌入式和服务器安装,您可以使用以下 MBean 通过 JMX 访问 Health API:

org.infinispan:type=CacheManager,name="default",component=CacheContainerHealth

Data Grid Server 还通过 REST 端点和 Data Grid 控制台公开 Health API。

表 3.1. 健康状态
7.x8.x描述

健康

健康

表示缓存按预期运行。

重新平衡

HEALTHY_REBALANCING

表示缓存处于重新平衡状态,但如预期运行。

Unhealthy

DEGRADED

表示缓存无法按预期工作,可能需要进行故障排除。

N/A

失败

在 8.2 中添加,以指示缓存无法在提供的配置中启动。

3.1.3. 对 Data Grid 8.1 配置模式的更改

本主题列出了 8.0 和 8.1 之间 Data Grid 配置模式的更改。

新的和修改的元素和属性
  • 堆栈 添加了对 inline JGroups 堆栈定义的支持。
  • stack.combinestack.position 属性允许您覆盖和修改 JGroups 堆栈定义。
  • 指标 允许您配置 Data Grid 导出与 Eclipse MicroProfile Metrics API 兼容的指标。
  • 通过 context-initializer,您可以指定一个 SerializationContextInitializer 实现,用于初始化用户类型的基于 Protostream 的 marshaller。
  • key-transformers 可让您注册转换程序,将自定义密钥转换为 String 进行索引。
  • 现在,统计信息 默认为 "false"。
弃用的元素和属性

以下元素和属性现已弃用:

  • off-heap 元素的 address-count 属性。
  • 事务 元素的 protocol 属性。
  • jmx 元素的 duplicate-domains 属性。
  • advanced-externalizer
  • custom-interceptors
  • state-transfer-executor
  • transaction-protocol
删除的元素和属性

以下元素和属性已在上一发行版本中弃用,现已被删除:

  • deadlock-detection-spin
  • 兼容性
  • write-skew
  • 版本控制
  • data-container
  • 驱除
  • eviction-thread-policy

3.1.4. 对 Data Grid 8.2 配置模式的更改

本主题列出了 8.1 和 8.2 之间 Data Grid 配置模式的更改。

修改的元素和属性
  • 白名单 更改为 allow-list
  • 角色 现在是定义的用户角色和安全授权权限的子元素。
  • 为自动 SerializationContextInitializer 注册更新了 context-initializer
    如果您的配置不包含 context-initializer 元素,则 java.util.ServiceLoader 机制会自动发现 classpath 上所有 SerializationContextInitializer 实现,并加载它们。
  • 对于 indexed-entity 元素,minOccurs 属性的默认值从 0 改为 1
新元素和属性
  • 属性添加到 transport 元素中,允许您传递 name/value 传输属性。
  • 添加至 security 元素的 cache-sizecache-timeout 属性来配置访问控制列表(ACL)缓存的大小和超时。
  • index-readerindex-writerindex-merge 子元素添加到 indexing 元素。
  • 存储 属性添加到指定 索引 存储选项的 indexing 元素中。
  • 添加到 indexing 元素中的 path 属性,用于指定 索引 使用文件系统存储时的目录。
  • bias-acquisition 属性添加到 scattered-cache 元素中,该元素控制节点何时可以在条目上获取 bias。
  • bias-lifespan 属性添加到 scattered-cache 元素中,以毫秒为单位指定节点可以保持获取的时间。
  • 添加至 backup 元素的 merge-policy 属性指定解析与跨站点复制冲突的算法。
  • 模式属性 添加到 备份state-transfer 子元素中。
    mode 属性配置手动或自动进行跨站点复制状态传输。
  • INSERT_ABOVEINSERT_BEFOREINSERT_BELOW 属性添加到 stack.combine 属性中,以使用继承扩展 JGroups 堆栈。
弃用的元素和属性

Data Grid 8.2 中没有元素或属性已弃用。

删除的元素和属性

Data Grid 8.2 中不会删除元素或属性。

3.1.5. 对 Data Grid 8.3 配置模式的更改

本主题列出了 8.2 和 8.3 之间 Data Grid 配置模式的更改。

模式更改
  • urn:infinispan:config:store:soft-index 命名空间不再可用。
修改的元素和属性
  • urn:infinispan:config 命名空间中的 file-store 元素默认为使用 soft-index 文件缓存存储。
  • single-file-store 元素包含在 urn:infinispan:config 命名空间中,但现已弃用。
新元素和属性
  • 现在,索引和数据元素可用于配置 Data Grid 如何使用 file-store 元素存储基于文件的缓存存储 的索引 和数据
  • file-store 元素的 open-files-limitcompaction-threshold 属性。
  • 集群属性 添加到 远程站点和 远程站点 元素中,允许您为跨站点通信定义全局集群名称。

    注意

    使用集群属性指定的全局 集群名称 必须在所有站点都相同。

  • 添加到 metrics 元素中的 accurate-size 属性,以启用使用 currentNumberOfEntries 统计的数据集的计算。

    重要

    从 Data Grid 8.3 开始,currentNumberOfEntries 统计返回值为 -1,因为它是要执行的昂贵的操作。

  • touch 属性添加到 expiration 元素中,用于控制在有最大闲置过期状态的集群缓存中更新时间戳的方式。默认值为 SYNC,属性仅适用于使用同步复制的缓存。为使用异步复制的缓存异步更新时间戳。
  • lifespan 属性添加到用于附加过期值的 数属性中,以毫秒为单位。默认值为 -1, 这意味着强大的一致的计数器永远不会过期。

    注意

    强大的 计数器的 lifespan 属性目前作为技术预览提供。

弃用的元素和属性

以下元素和属性现已弃用:

  • single-file-store 元素。
  • file-store 元素的 max-entriespath 属性。
删除的元素和属性

Data Grid 模式中不再提供以下元素和属性:

  • transport 元素的 remote-command-executor 属性。
  • distributed-cache 元素的 capacity 属性。

3.1.6. 对 Data Grid 8.4 配置模式的更改

本主题列出了 8.3 和 8.4 之间 Data Grid 配置模式的更改。

模式更改
新元素和属性
  • default-max-results 属性添加到 query 元素中,允许您限制查询返回的结果数量。适用于索引、非索引和混合查询。
  • startup-mode 属性,允许您定义在缓存启动时数据网格应执行哪些操作。选项 会清除reindexautonone。默认值为 none
  • Raft-members 属性可让您定义由空格分隔的 raft 成员列表。
弃用的元素和属性

以下元素和属性现已弃用:

  • scattered-cache 元素现已弃用
删除的元素和属性

Data Grid 模式中不再提供以下元素和属性:

  • fetch-state store 属性不再可用。您可以从 xml 配置中删除属性。

3.1.7. 对 Data Grid 8.5 配置模式的更改

本主题列出了在 8.4 和 8.5 之间对 Data Grid 配置模式的更改。

新元素和属性
  • 添加到 cache-container 的追踪 元素可让您配置追踪,并可通过 OpenTelemetry 收集器收集 trace。
  • group-only-mapping 属性添加到 授权 中。使用此属性指定 principal-to-role 映射 是否仅适用于组主体或用户主体。默认值 true 仅将 principal-to-role 映射 应用到组主体。将值设为 false 以将映射应用到这两个主体类型。
  • 在角色 中添加 description 属性可让您定义角色的描述。
  • schema-compatibility 属性添加到 序列化 中,可让您指定更新模式时执行的兼容性验证。
  • unclean-shutdown-action 属性添加到 global-state,可让您定义在持久全局状态中找到 dangling 锁定文件时执行的操作,表示该节点的未清理关闭。默认值为 FAIL
  • 添加到索引的 index-sharding 元素。分片是将索引数据拆分为多个较小的索引,称为分片。在处理大量数据时,分片提高了性能。分片默认是禁用的。
  • 添加到索引中的 indexing-mode 元素可让您定义如何将缓存操作传播到索引中。默认情况下,对缓存的所有更改都会立即应用到索引中。
  • 添加到 索引 中的 追踪 元素可让您配置追踪,并可通过 OpenTelemetry 收集器收集 trace。
  • 添加到 缓存 的别名 属性,可让您为缓存定义零个或多个别名名称。
  • 添加到 缓存的 统计 属性,用于定义缓存是否应该收集统计信息。保持禁用统计数据收集以获得最佳性能。
弃用的元素和属性

这个版本没有弃用。

删除的元素和属性

Data Grid 模式中不再提供以下元素和属性:

  • scattered-cache 元素已被删除。
  • property 元素已从 缓存 中删除。
  • auto-config 元素已从 索引中删除
  • statistics-available 属性已从 索引中删除
  • connection-interval 属性(如 )从 持久性 中删除。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.