第 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");
Copy to Clipboard Toggle word wrap
1
AdminFlag.PERMANENT 默认是启用的,以确保重新启动后缓存。

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

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
   .addSingleFileStore()
   .location("/tmp/myDataStore")
   .maxEntries(5000);
Copy to Clipboard Toggle word wrap

volatile 缓存

.administration()
   .withFlags(AdminFlag.VOLATILE) 
1

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

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

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

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

    [//containers/default]> create cache --template=
    Copy to Clipboard Toggle word wrap
  • 使用 REST API:

    GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
    Copy to Clipboard Toggle word wrap

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>
Copy to Clipboard Toggle word wrap

如果您不对远程缓存进行编码,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.
Copy to Clipboard Toggle word wrap

在以后的版本中,对进行数据转换的操作需要缓存编码;例如,缓存索引和搜索数据容器、远程任务执行、读取和写入来自 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
Copy to Clipboard Toggle word wrap

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

Expand
表 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 中不会删除元素或属性。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat