第 1 章 Data Grid 发行信息


了解新功能并获取最新的 Data Grid 版本信息。

1.1. Data Grid 8.3.0 中的新功能

Data Grid 8.3 提高了可用性、提高性能并提高安全性。了解新内容。

1.1.1. Java 17 支持

Data Grid 8.3 为嵌入式和远程缓存完全支持 Java 17。

1.1.2. Data Grid Helm Chart

Data Grid 8.3 引入了一个 Helm chart,用于在 Red Hat OpenShift 上部署 Data Grid 集群。Data Grid Helm Chart 会为无法部署 Data Grid Operator 管理的集群或需要手动配置、部署和管理数据中心集群的场景提供替代方案。

Data Grid Helm Chart 包括 deploy.infinispan 值,可让您使用 Helm 客户端或通过 OpenShift Web 控制台将自定义配置应用到 Data Grid Server 节点。

1.1.3. Data Grid 配置

Data Grid 提供声明式和编程配置属性,用于自定义缓存和底层机制,如安全性和集群传输。

polyglot 配置

Data Grid 8.3 可让您创建 JSON 和 YAML 格式的声明配置,除了 XML 外。您可以为任何部署平台重复使用相同的 Data Grid 配置文件:Red Hat Enterprise Linux (RHEL)或 Red Hat OpenShift via Data Grid Operator 或 Data Grid Helm Chart。

动态缓存的可变配置属性

Data Grid 8.3 可让您在运行时动态创建的缓存修改某些配置属性。这意味着您不再需要删除,然后重新创建缓存以更改配置属性,如 lifetimespan for expiration 或 max-count 进行驱除。

对缓存配置的更改必须与现有配置兼容。例如,您无法修改缓存配置,将 replicated-cache 元素更改为 distributed-cache,或使用 max-count 属性,而不是 max-size 属性。

更改可变配置属性

Data Grid 命令行界面(CLI)和 REST API 提供了以下机制:

  • 检索可变配置属性的列表。
  • 在运行时更改可变配置属性。

有关使用详情,请参阅 CLIREST 部分。

缓存大小统计

从 Data Grid 8.3 开始,currentNumberOfEntries 统计默认返回 -1 以提高性能。

现在,如果要恢复这个统计 的准确值,Data Grid 还为指标配置提供准确的大小 属性。但是,这是资源密集型计算,建议只在开发环境中使用。将值设为 true,如下所示:

声明

<cache-container>
 <metrics accurate-size="true"/>
</cache-container>
Copy to Clipboard Toggle word wrap

programmatic

GlobalConfigurationBuilder b = new GlobalConfigurationBuilder();
b.metrics().accurateSize(true);
Copy to Clipboard Toggle word wrap

注意

计划在以后的 Data Grid 版本中提供大约缓存大小统计的指标。

1.1.4. 持久性存储

Data Grid 8.3 为使用持久性存储提供新的改进的缓存存储实现。

基于文件的默认缓存存储实现

为了通过使用较少的内存资源并避免碎片来提高性能,SoftIndexFileStore 现在是 Data Grid 中基于文件的缓存存储的默认实现。从 8.3 开始,包括在缓存配置中包括 文件存储 持久性,会创建一个基于软索引文件的缓存存储,而不是单文件缓存存储。

当您升级到 8.3 时,数据平面会自动将任何文件 存储配置迁移到 SoftIndexFileStore

如果您从早期版本迁移到 Data Grid 8.3,且您的缓存配置包括 soft-index-file-store 元素,您应该将其转换为 file-store 元素。如需更多信息,请参阅 迁移到 Data Grid 8

Data Grid 8.2

<persistence>
  <soft-index-file-store xmlns="urn:infinispan:config:soft-index:12.1">
    <index path="testCache/index" />
    <data path="testCache/data" />
  </soft-index-file-store>
</persistence>
Copy to Clipboard Toggle word wrap

Data Grid 8.3

<persistence>
  <file-store>
    <index path="testCache/index" />
    <data path="testCache/data" />
  </file-store>
</persistence>
Copy to Clipboard Toggle word wrap

SQL 缓存存储

Data Grid 8.3 引入了 SQL 缓存存储,简化了对持久性存储中的数据的访问,并通过 JDBC 连接预加载缓存。

您可以创建两种类型的 SQL 缓存存储:

Data Grid 从单个数据库表中加载条目。
查询
Data Grid 使用 SQL 查询来加载条目,并执行插入、更新和删除操作。
JDBC 连接工厂

从 Data Grid 8.3 Data Grid 开始,在 org.infinispan.persistence.jdbc.common.configuration 软件包中为 JDBC 连接提供了 ConnectionFactory 实现。您可以在 SQL 缓存存储和基于 JDBC 字符串的缓存存储中使用这些连接工厂。

1.1.5. Data Grid Server

数据中心服务器在专用 Java 虚拟机(JVM)中运行,并为远程缓存提供可扩展且容错的集群。

分布式安全域

Data Grid Server 现在允许您将多个安全域合并到一个域中。在验证用户时,Data Grid Server 会依次使用每个安全域,直到找到可以执行身份验证的安全域。

例如,以下安全域包含一个 LDAP 域和一个属性 realm 和 distributed-realm 元素:

<security-realms>
   <security-realm name="my-distributed-realm">
      <ldap-realm>
         <!-- LDAP realm configuration. -->
      </ldap-realm>
      <properties-realm>
         <!-- Property realm configuration. -->
      </properties-realm>
      <distributed-realm/>
   </security-realm>
</security-realms>
Copy to Clipboard Toggle word wrap
多个端点配置

您可以将 Data Grid 服务器配置为将多个端点绑定到不同的套接字,并使用不同的安全域。

以下示例中,以下片段包含两个不同的端点配置。一个端点绑定到"公共"套接字,使用"应用程序"安全域,并禁用管理功能。另一个端点绑定到"私有"套接字,使用"管理"安全域,并启用管理功能。

<endpoints>
  <endpoint socket-binding="public"
            security-realm="application"
            admin="false">
    <hotrod-connector/>
    <rest-connector/>
  </endpoint>
  <endpoint socket-binding="private"
            security-realm="management">
    <hotrod-connector/>
    <rest-connector/>
  </endpoint>
</endpoints>
Copy to Clipboard Toggle word wrap
注意

从 8.3 开始,endpoint 元素现在是一个或多个端点配置的打包程序。如果将子元素添加到 端点,则必须使用 endpoint 元素。

如果您要从 Data Grid 8.2 或更早版本升级,并且配置多个端点,您必须将配置调整为 8.3 模式。如需更多信息,请参阅 迁移到 Data Grid 8

安全增强

集群传输的安全域

指定包含 TLS 服务器身份来保护集群传输的安全域,例如:

<cache-container>
  <transport server:security-realm="tls-transport"/>
</cache-container>
Copy to Clipboard Toggle word wrap
注意

此配置还加密用于跨站点复制的 RELAY 消息,并提供 JGroups SYM_ENCRYPT 和 ASYM_ENCRYPT 协议的替代选择。您必须在参与跨站点复制的所有 Data Grid 集群上配置安全性。

PEM 文件密钥存储和信任存储

直接向 Data Grid 服务器配置添加 PEM 文件,将它们用作 TLS 服务器身份中的信任存储和密钥存储。

  • PEM 文件作为密钥存储必须包含 PKCS1141 或 PKCS the8 格式的私钥,以及一个或多个证书。
  • PEM 文件作为信任存储必须包含一个或多个证书。
  • PEM 文件需要一个空密码 password=""

使用 OpenSSL 完全支持 TLSv1.3

Data Grid Server 默认支持 TLS 版本 1.2 和 1.3。您可以使用以下配置限制客户端连接到 TLSv1.3 的安全协议:

<engine enabled-protocols="TLSv1.3" />
Copy to Clipboard Toggle word wrap
配置覆盖

Data Grid Server 可以使用重复 --server-config=-c 参数来解析您在启动时覆盖的多个配置文件。

$ bin/server.sh -c infinispan.xml -c overlay.yaml
Copy to Clipboard Toggle word wrap

您可以根据需要使用多个配置覆盖文件,按任何顺序使用。配置覆盖文件:

  • 必须为每个数据中心配置有效。
  • 只要您的覆盖文件组合产生完整的配置,不需要完全配置。
重要

Data Grid Server 不会检测覆盖文件间的冲突配置。每个覆盖文件会覆盖上述配置中的任何冲突配置。

缓存配置

如果您在覆盖文件中添加缓存配置,Data Grid 服务器不会在其他节点上动态创建该缓存。

覆盖文件不能包含缓存配置片段。例如,要在覆盖文件 -c mycache.yaml 中创建分布式缓存,您必须包含 infinispancacheContainer 字段,如下所示:

infinispan:
  cacheContainer:
    distributedCache:
      name: "mycache"
      mode: "SYNC"
      owners: 2
      statistics: "true"
      encoding:
        mediaType: "application/x-protostream"
Copy to Clipboard Toggle word wrap
侦听所有地址

如果您将 0.0.0.0 meta-address (INADDR_ANY)指定为 Data Grid 服务器的绑定地址,它会侦听所有可用网络接口上的进入客户端连接。

性能和可用性改进
  • Data Grid Server 8.3 整合线程池以使用较少的主机资源。
  • Data Grid Server 安装现在包含 bin/service.bat 脚本,用于作为 Microsoft Windows 服务运行。

1.1.6. Data Grid 控制台

Data Grid Console 是一个图形用户界面,用于监控和管理远程缓存,其中包括 8.3 中的以下功能和增强:

  • 缓存现在必须具有适当的编码才能查看 Entries 选项卡。
  • 您可以为缓存打开和关闭集群重新平衡操作。

    重要

    您应该仅在短时间内禁用集群重新平衡,以避免在重启节点或添加多个节点时重复重新平衡操作。始终尽快启用集群重新平衡,以防止数据丢失。

  • 添加缓存对话框中不再提供缓存 模板,除非您将自定义模板添加到 Data Grid Server 配置中。
  • 自动检测 JSON 编码和 Protobuf 自定义类型。
  • 缓存条目编辑现在被类型识别。
  • 对警报模态、工具提示和内联帮助进行了更新,以改进用户体验。
  • 改进了错误处理和统计收集。

1.1.7. Data Grid 命令行界面(CLI)

Data Grid CLI 允许您脚本并为远程缓存自动执行管理操作。

在运行时修改配置属性

通过 change 命令,您可以在运行时修改 Data Grid 配置属性。

  • 使用 --file 选项指定具有一个或多个属性修改的配置文件。
  • 使用 --attribute--value 选项修改特定的配置属性。
alter cache mycache --attribute=clustering.remote-timeout --value=5000
Copy to Clipboard Toggle word wrap
控制缓存可用性

可用 命令允许您在网络分区中管理集群缓存的可用性。

  • 使用 --mode=[AVAILABLE|DEGRADED_MODE] 选项,在使用 DENY_READ_WRITES 或 ALLOW_READ_WRITES 或 ALLOW_READS 分区处理策略时,将缓存可用性设置为 AVAILABLE 或 DEGRADED_MODE。
availability --mode=AVAILABLE mycache
Copy to Clipboard Toggle word wrap
启用和禁用重新平衡操作

rebalance 命令可让您为缓存打开和关闭重新平衡操作。

重要

您应该仅在短时间内禁用集群重新平衡,以避免在重启节点或添加多个节点时重复重新平衡操作。始终尽快启用集群重新平衡,以防止数据丢失。

  • 使用 rebalance disable 命令来关闭重新平衡。

    [//containers/default]> rebalance disable
    Copy to Clipboard Toggle word wrap
  • 使用 rebalance enable 命令打开重新平衡。

    [//containers/default]> rebalance enable
    Copy to Clipboard Toggle word wrap
hot Rod 集群迁移

migrate 命令提供了将数据从一个正在运行的 Data Grid 集群迁移到另一个选项。

  • 使用 migrate cluster connect 命令,从源集群建立到目标集群的连接。
  • 使用 migrate cluster synchronize 命令将数据从源集群迁移到目标集群。
  • 在迁移数据后,使用 migrate cluster disconnect 命令结束集群间的连接。
检索跨站点复制转发节点

site 命令可让您找出 Data Grid 集群中的哪些节点处理跨站点复制的 RELAY 消息。

  • 使用 site is-relay-node 命令找出节点是否为中继节点。
  • 使用 site relay-nodes 命令获取集群中中继节点的列表。
原生 CLI

在 8.3 中更新原生 CLI,以改进作为 oc 客户端插件的使用,并与 Red Hat OpenShift 上运行的 Data Grid pod 交互。

1.1.8. REST API

Data Grid 可让您通过 REST 使用 HTTP 访问远程缓存和容器。

在运行时修改配置属性
  • 检索缓存的所有可变缓存配置属性。

    GET /rest/v2/caches/{cacheName}?action=get-mutable-attributes
    Copy to Clipboard Toggle word wrap
  • 更改可变缓存配置属性。

    POST /rest/v2/caches/{cacheName}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
    Copy to Clipboard Toggle word wrap
控制缓存可用性
  • 检索缓存的可用性。

    GET /v2/caches/{cacheName}?action=get-availability
    Copy to Clipboard Toggle word wrap
  • 在使用 DENY_READ_WRITES 或 ALLOW_READS 分区处理策略时,更改集群缓存的可用性。

    POST /v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
    Copy to Clipboard Toggle word wrap
启用和禁用重新平衡操作
  • 为所有缓存打开自动重新平衡。

    POST /rest/v2/cache-managers/{cacheManagerName}?action=enable-rebalancing
    Copy to Clipboard Toggle word wrap
  • 为所有缓存关闭自动重新平衡。

    POST /rest/v2/cache-managers/{cacheManagerName}?action=disable-rebalancing
    Copy to Clipboard Toggle word wrap
  • 为特定缓存打开自动重新平衡。

    POST /v2/caches/{cacheName}?action=enable-rebalancing
    Copy to Clipboard Toggle word wrap
  • 为特定缓存关闭自动重新平衡。

    POST /v2/caches/{cacheName}?action=disable-rebalancing
    Copy to Clipboard Toggle word wrap
hot Rod 迁移

REST API 会公开控制,允许您将数据从一个正在运行的 Data Grid 集群迁移到另一个网格集群。

  • 从源集群到目标集群建立连接。

    POST /v2/caches/myCache?action=connect-source
    Copy to Clipboard Toggle word wrap
  • 将数据从源集群迁移到目标集群。

    POST /v2/caches/myCache?action=sync-data
    Copy to Clipboard Toggle word wrap
  • 在迁移数据后,在集群间终止连接。

    DELETE /v2/caches/myCache/rolling-upgrade/source-connection
    Copy to Clipboard Toggle word wrap
检索跨站点复制转发节点
  • 获取为跨站点复制发送和接收 RELAY 消息的节点列表:

    GET /rest/v2/cache-managers/{cacheManagerName}
    Copy to Clipboard Toggle word wrap
在 XML、JSON 和 YAML 之间转换缓存配置

使用有效配置和 ?action=convert 参数调用 POST 请求。Data Grid 使用 Accept 标头指定的类型中配置的等效表示响应。

POST /rest/v2/caches?action=convert
Copy to Clipboard Toggle word wrap
带有服务器事件的缓存条目和缓存配置监听程序
  • 使用服务器事件接收与配置更改相关的事件。

    GET /rest/v2/container/config?action=listen
    Copy to Clipboard Toggle word wrap
  • 使用服务器事件接收缓存事件。

    GET /rest/v2/caches/{name}?action=listen
    Copy to Clipboard Toggle word wrap

1.1.9. 查询 API

Data Grid 可让您使用 Ickle 查询语言来索引缓存并执行关系或全文本查询。

通过查询删除

您可以使用以下语法从 Data Grid 缓存中删除条目:

DELETE FROM <entityName> [WHERE condition]
Copy to Clipboard Toggle word wrap
  • 仅引用具有 < entityName& gt; 的单一实体。DELETE 查询无法使用加入。
  • WHERE 条件是可选的。
查询执行方法

Query API 提供了在缓存上执行 Ickle 查询的方法:

  • query.execute () 运行 SELECT 语句并返回结果。
  • query.executeStatement () 运行 DELETE 语句并修改数据。
注意

您应该始终调用 executeStatement () 来修改数据并调用 execute () 来获取查询的结果。

1.1.10. 跨站点复制

跨站点复制可让您在多个地理位置备份数据中心集群。

改进了可观察性和指标

Data Grid 8.3 更新跨站点复制功能,以提高监控和统计信息。

Data Grid 可让您:

  • 通过 CLI、REST API 或 JMX 检索备份位置的详细状态。
  • 检索备份位置的中继节点列表,以查找哪些向跨站点通信发送 JGroups RELAY 消息。

    注意

    JGroups 配置将节点作为"站点 master"节点转发。Data Grid 使用中继节点,因为它更为描述性,并提供了更直观的选择。

Data Grid 8.3 还提供有关每个备份位置和缓存的跨站点复制操作的更多详细信息,包括响应时间和 RELAY 信息的数量。

命名全局集群

cluster 属性允许您为打印到日志消息的全局集群定义名称。这样可以更轻松地将全局集群与 Data Grid 日志中的本地集群区分开。

注意

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

默认情况下,跨站点集群名为 "xsite",但您可以指定一个自定义名称,如以下示例中的 "my-global-cluster" :

<remote-sites default-stack="tcp" cluster="my-global-cluster">
  <remote-site name="LON"/>
  <remote-site name="NYC"/>
</remote-sites>
Copy to Clipboard Toggle word wrap

1.1.11. 滚动升级和 Hot Rod 迁移

Data Grid 8.3 简化了在集群间执行数据实时迁移的配置和机制,以便从一个版本移到另一个版本。Data Grid 8.3 中的滚动升级:

  • 不再需要手动添加 remote-store 配置来执行滚动升级。
    使用 CLI 或 REST API 连接源和目标集群。
  • 在 REST API 和 CLI 命令中提供额外的方法,以进行滚动升级操作。
  • 可让您通过 Console、CLI、REST API 或 Hot Rod API 动态创建的缓存执行滚动升级。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat