Red Hat Data Grid 8.4 Release Notes


Red Hat Data Grid 8.4

获取 Data Grid 8.4 的发行信息

Red Hat Customer Content Services

摘要

了解 Data Grid 8.4 中的功能和增强以及已知问题。

Red Hat Data Grid

数据网格是高性能分布式内存数据存储。

Schemaless 数据结构
灵活性以将不同对象存储为键值对。
基于网格的数据存储
旨在在集群中分发和复制数据。
弹性扩展
动态调整节点数量,以在不中断服务的情况下满足需求。
数据互操作性
从不同端点在网格中存储、检索和查询数据。

Data Grid 文档

红帽客户门户网站中提供了数据网格的文档。

Data Grid 下载

访问红帽客户门户网站中的 Data Grid 软件下载

注意

您必须有一个红帽帐户才能访问和下载 Data Grid 软件。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户网站。

要从客户门户网站提交文档反馈,请执行以下操作:

  1. 选择 Multi-page HTML 格式。
  2. 点文档右上角的 反馈 按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 点高亮文本旁的添加反馈对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后单击 Submit

每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。

感谢您的宝贵反馈。

第 1 章 Data Grid 发行版本信息

了解新功能并获取最新的 Data Grid 发行信息。

1.1. Data Grid 8.4.1 中的新功能

Data Grid 8.4.1 提高了可用性、提高性能并提高安全性。了解.

迁移分段缓存存储

StoreMigrator.java 工具现在支持从网段的缓存存储中迁移数据。

  • 使用 source.segment_count 属性为源缓存存储配置片段数量。

    migrator.properties

    source.segment_count=256
    Copy to Clipboard Toggle word wrap

1.1.1. REST API 的改进

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

比较缓存配置

您可以验证两个缓存配置是否语义上。

  • 使用包含两个配置和 ?action=compare 参数的 多部分/数据 正文调用 POST 请求。

    POST /rest/v2/caches?action=compare
    Copy to Clipboard Toggle word wrap

    当配置相等时,Data Grid 使用 204 (无内容) 响应,如果配置是不同的,则为 409 (Conflict)

如需更多信息,请参阅 Data Grid REST API 指南 的比较缓存配置

1.1.2. 在声明性配置中重置 Hot Rod 协议版本

如果您的声明配置强制使用 Hot Rod 协议的特定版本,您可以将版本重置回其 AUTO 的默认值。当您将 infinispan.client.hotrod.protocol_version 设置为 AUTO 时,Hot Rod 客户端会自动使用最新可用版本。

1.1.3. Data Grid Console 的改进

Data Grid Console 8.4.1 包括以下改进和程序错误修复:

  • 默认情况下,分布式缓存有两个拥有者
  • 改进了使用索引配置和运行查询的错误处理
  • 改进了全局统计页面的用户体验

1.2. Data Grid 8.4.0 中的新功能

数据网格 8.4 提高了可用性、提高性能并提高安全性。了解.

jakarta EE API

Data Grid 8.4 distributes Jakarta EE 9+ based jars.如果您的应用程序需要 Jakarta 的依赖项,请使用 -jakarta 附加工件,例如:

pom.xml

<dependency>
   <groupId>org.infinispan</groupId>
   <artifactId>infinispan-client-hotrod-jakarta</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

有关 Jakarta EE 的信息,请参阅关于 Jakarta EE 的信息。

MemcachedDecoder 性能改进

MemcachedDecoder 不再阻止 Netty 线程:当线程池耗尽时防止死锁。

1.2.1. 热环客户端

热环是一种自定义二进制 TCP 协议,可为使用不同编程语言的客户端应用程序提供高性能数据访问。

支持使用 application/x-protostream的查询

Data Grid 8.4 中的热 Rod Node.js 客户端添加了对对 application/x-protostream 介质类型的查询的支持。配置 Hot Rod JS 客户端,使缓存中的值具有 application/x-protostream 介质类型,以便可以在其中执行查询。

现在,您可以在 JS 客户端支持的所有 Hot Rod 操作中使用 application/x-protostream 介质类型。如需更多信息,请参阅 Hot Rod Node.JS 客户端指南

每个集群的客户端智能配置

当您将 Hot Rod 客户端配置为使用多个数据网格集群时,您可以为每个集群使用不同的客户端智能功能。

如需更多信息,请参阅 Hot Rod Java 客户端指南

1.2.2. Data Grid Server

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

Micrometer 指标

Data Grid 8.4 使用 Micrometer 库来收集指标。Data Grid Server 通过 指标端点 提供统计数据。您可以使用任何监控工具来收集统计数据,例如使用 Prometheus。Micrometer 指标替代 MicroProfile 指标的 SmallRye Metrics 实施。

改进了状态传输操作过程中的指标

当集群拓扑更改时,Data Grid 会为片段数量和事务片段的数量公开指标。数据网格会生成与 REST API 和 JMX API 兼容的时间指标。

RESP 协议端点

Data Grid Server 包含一个实现 RESP3 协议的实验性模块。RESP 端点允许 Redis 客户端连接到由一个或多个 Data Grid 支持的 RESP 服务器并执行缓存操作。

Data Grid 8.4 支持通常用于缓存操作的 Redis 命令子集。有关支持的命令列表,请参阅使用带有 Data Grid 文档的 RESP 协议端点。Data Grid 团队计划在后续版本中实施其他命令。

重要

RESP 协议端点作为技术预览提供。

基于角色的动态访问控制(RBAC)

基于角色的访问控制(RBAC)功能使用不同的权限级别来限制用户与 Data Grid 的交互。您可以修改用户角色,以编程方式或使用 Data Grid CLI 和 Data Grid 控制台来分配不同的权限。

如需更多信息,请参阅 具有基于角色的访问控制的安全授权

支持屏蔽和外部凭证

Data Grid Server 可让您使用屏蔽的密码和外部命令将密码添加到 Data Grid 服务器配置。

生成 JVM 堆转储的选项

您可以生成 JVM 堆上所有 live 对象的转储。数据网格在服务器数据目录中以 HPROF 格式生成堆转储文件,并以 JSON 格式回答文件的完整路径。

1.2.3. Data Grid Console

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

缓存创建向导

打开 Cache Setup 选项卡,并让 Data Grid Console 向导指导您完成创建和配置缓存的过程。向导包括提示和工具,可帮助您创建缓存并启用数据网格功能,如索引、安全或持久性。完成所有步骤后,您可以使用 JSON、YAML 或 XML 格式下载配置并重复使用该文件。

缓存分发统计

Data Grid Console 在 缓存详情页面中 引入了 Metrics 选项卡。您可以查看和过滤节点的数据,如每个节点或内存用量的条目数量。

1.2.4. 查询 API

数据网格可让您使用 Ickle 查询语言来索引缓存和执行相关或全文本查询。

Hibernate ORM 6 支持

数据网格中的 Hibernate ORM 第二级缓存(2LC)实施已升级,以便使用 Hibernate 6。

添加以下依赖项:

pom.xml

<dependency>
  <groupId>org.infinispan</groupId>
  <artifactId>infinispan-hibernate-cache-v60</artifactId>
  <version>${version.infinispan}</version>
</dependency>
Copy to Clipboard Toggle word wrap

注意

由于 Jakarta EE 迁移,Data Grid 8.4 不支持 Hibernate 5。

1.2.5. 数据网格原生索引注解

此发行版本引入了新的索引注释:@ Basic、@ Keyword@TextEmbedded。这些新注解替换了 Hibernate Search 注解,这意味着不再需要为远程缓存添加 @ProtoDoc 注解来注解您的 Java 类。

使用新的原生索引注解,您可以直接注解实体。此外,您还可以将这些注解用于嵌入式和远程查询。

每个新注解都支持一组进一步描述实体的索引属性。

数据网格索引注解

@Basic
将此注解用于不需要任何文本转换或处理的编号和简短 字符串。支持 可排序的 搜索和 可项目 的属性。
@Keyword
将此注解用于 字符串。支持下列属性: 可搜索可预测、 排序和 规范化程序
@Text
将此注解用于较大的 字符串。支持 可搜索项目和 分析器 属性。
@Embedded
将此注解用于嵌入式索引并指定实体结构。NESTED 结构保留了原始对象关系结构,而 FLATTENED 结构可使父实体的 leaf 字段多值。

Poem.java

@Indexed
public class Poem {

private Author author;
private String description;
private Integer year;

@Embedded(includeDepth = 2, structure = Structure.NESTED)
public Author getAuthor() {
return author;
}

@Text(projectable = true, analyzer = "whitespace", termVector = TermVector.WITH_OFFSETS)
public String getDescription() {
return description;
}

@Basic(projectable = true, sortable = true, indexNullAs = "1800")
public Integer getYear() {
return year;
}
}
Copy to Clipboard Toggle word wrap

索引启动模式

您可以配置 Data Grid 以自动执行操作,以确保索引与缓存中的数据一致。

启动模式

none
默认情况下,没有索引操作。
清除
在缓存启动时清除索引。此操作期间将无法使用缓存。
reindex
在缓存启动时重建索引。
auto
自动清除或重新索引缓存。如果数据是易失性,并且索引是持久的,则缓存会在启动时清除。如果数据持久,且索引是易失性,则缓存在启动时会重新索引。

清除模式配置

<distributed-cache>
  <indexing storage="filesystem" startup-mode="purge">
    <!-- Additional indexing configuration goes here. -->
  </indexing>
</distributed-cache>
Copy to Clipboard Toggle word wrap

动态索引模式更新

只要您的更改与之前的模式兼容,就可以更新模式,而无需重新索引和停机。数据网格仅保留现有的索引和更新模式。

您可以使用以下方法之一更新 schema:

  • 调用 updateIndexSchema () 方法,以以编程方式从 Hot Rod Java 客户端更新模式。

    remoteCacheManager.administration().updateIndexSchema("MyCache");
    Copy to Clipboard Toggle word wrap
    提示

    对于远程缓存,您还可以使用 update-schema 命令从 Data Grid Console 更新 schema。

  • 使用 POST 请求更新 schema。
POST .../v2/caches/{myCache}/search/indexes?action=updateSchema
Copy to Clipboard Toggle word wrap
查询返回的结果限制

Data Grid 添加 default-max-results 属性,用于限制查询返回的结果数量。default-max-results 属性的默认值为 100。限制查询返回的结果数量可显著提高没有明确限制的查询的性能。

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

数据网格 CLI 允许您为远程缓存脚本和自动化管理操作。

改进了安全验证

您可以使用 Data Grid CLI 使用客户端证书身份验证连接到 Data Grid Server。

将命令应用到所有缓存

数据网格 CLI 可让您使用 --all-caches-a 选项,将命令应用到所有缓存。例如,如果您执行以下命令,Data Grid 显示所有缓存的备份位置状态:

[//containers/default]> site status --all-caches --site=NYC
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅使用 Data Grid 命令行界面

1.3. Data Grid 8.4 中支持的 Java 版本

红帽支持不同的 Java 版本,具体取决于您如何安装 Data Grid。

Java 8 支持结束

Data Grid 8.4 删除了对 Java 8 的支持。对 Java 8 的支持已弃用,并计划从 Data Grid 8.2 开始删除。

在需要 Java 8 的应用程序中运行的热 Rod Java 客户端可能会继续使用旧版本客户端库。

重要

数据网格用户必须至少将其应用程序升级到 Java 11。

Data Grid 8.4 中支持的 Java 版本
嵌入缓存

当将数据网格用于自定义应用程序中嵌入式缓存时,红帽支持 Java 11 和 Java 17。

远程缓存

红帽支持 Java 11 和 Java 17 for Data Grid Server 安装。对于 Hot Rod Java 客户端,红帽支持 Java 11 和 Java 17。

红帽支持 Java 11 和 Java 17 for Data Grid Server、Hot Rod Java 客户端,以及将数据网格用于自定义应用程序中嵌入式缓存时。

注意

当在裸机安装中运行 Data Grid Server 时,Java 17 无法使用 JavaScript 引擎。

第 2 章 已知的和修复问题

了解数据网格中已知的问题,并找出哪些问题已解决。

2.1. Data Grid 的已知问题

有关影响使用 Data Grid Operator 管理的 Data Grid 集群的问题,您应该参考 Data Grid Operator 8.4 发行注记

发生网络分区时的事务不一致

问题: JDG-3935

描述: 在对 Data Grid 集群发生网络分区的情况,在分区修复后回滚事务。

临时解决方案: 这个问题还没有临时解决方案。

Data Grid Conflict 解析性能

问题: JDG-3636

描述: 在某些情况下,Data Grid 分区处理功能的时间比预期的执行冲突解决要长。

临时解决方案: 这个问题还没有临时解决方案。

2.2. 修复了 Data Grid 8.4.1 中

Data Grid 8.4.1 包括以下显著的修复:

  • JDG-5725 通过 REST 创建数据网格集群备份失败
  • JDG-5726 使用 GET 请求在浏览器中检索 Data Grid Server 配置会失败
  • 用于多个 Data Grid Server 实例的 JDG-5724 Retrieving 诊断报告失败
  • JDG-5825 GET 命令阻止了 text/plain 缓存
  • JDG-5802 Data Grid Console: Queries 在条目过期后运行时返回错误
  • JDG-5842 Data Grid Console:仅在重新载入页面后更新未命中和检索的指标
  • JDG-5831 Data Grid Console: Cache creation 向导可让用户创建带有无效介质类型的索引缓存
  • JDG-5832 Data Grid Console: Data distribution chart resize 问题
  • JDG-5 625更新至 Data Grid Console 徽标
  • 在进行访问控制列表(ACL)权限检查时,JDG-5686 Thread Locking
  • JDG-5805 获取 AdvancedCache.getStats () 统计失败
  • JDG-5801 数据源连接池 maxSize 的默认值会导致 NullPointerException (NPE)
  • JDG-5799 JSON 字符应该使用两个相等性检查进行转义
  • 使用 Java 17 的 JDG-5800 在 Data Grid 集群上配置红帽单点登录会抛出异常
  • JDG-5821 在 Data Grid Server 8.3 和 Hot Rod 客户端 8.4 间的兼容
  • JDG-5790 CacheInputEntryStream 转义值

2.3. 修复了 Data Grid 8.4.0 中的问题

Data Grid 8.4.0 包括以下显著的修复:

  • JDG-4863 选项从 Data Grid CLI 或控制台删除 Protobuf 模式
  • 带有多线程客户端的 JDG-5439 拓扑更新不安全
  • JDG-5320 Missing 支持使用 Protobuf 编码缓存进行嵌入式查询
  • JDG-5316 SoftIndexFileStore 增加数据文件夹的大小
  • JDG-5318 SoftIndexFileStore 加载存储数据的不正确大小
  • 在带有 startOffset=10 和 maxResults=10 的远程查询中使用索引字段时,JDG-5221 ArrayIndexOutOfBoundsException
  • JDG-5325 RELAY2 在 UnknownHostException 后不会重新连接
  • JDG-5219 Invalid Protobuf 模式会导致 PUT 操作失败,而无需特定的错误消息
  • JDG-5253 创建了两个缓存,它们仅在特殊字符中不同,且启用了静态的缓存会导致第二个缓存降级
  • 在超时过期后,JDG-4766 客户端不应关闭服务器连接
  • JDG-5544 大量负载下的索引写入器线程中的死锁
  • 如果缓存有无法转换为 JSON 的值的 media-type,则 JDG-5542 REST 密钥调用会失败
  • JDG-5553 Bulk 操作不能使用嵌入的密钥 SQL 存储正常工作
  • JDG-5641 存储不支持过期时间
  • JDG-5575 如果 Protobuf 条目包含分数值的编号,它未能为 MicrosoftSQL 2019 服务器或 Postgresql 13 保留这个值
  • JDG-5531 YamlConfigurationReader 会为有效缓存配置抛出 NullPointerException
  • 计算网络全局连接时,JDG-5622 NullPointerException
  • JDG-5624 SoftIndexFileStore 不会删除过期的日志文件
  • 使用 CrossSiteReplication 为加入节点的 JDG-5327 ConcurrentModificationException
  • JDG-5232 Invalid YAML representation of a cache
  • JDG-5442内存 max-size 配置为非字节值会导致 CacheManager 重启失败
  • JDG-5411 如果安全域名称包含 HTTP 库无法解析的特殊字符
  • 如果在 TaskExecutionMode.ALL_NODES 中执行 remote-task,则 JDG-3394 Hot Rod 客户端会抛出异常
  • JDG-5629 A 站点通过 IRAC 发送空批到远程站点

2.4. 主机系统和依赖项问题

在某些情况下,Data Grid 部署可能会遇到主机系统或外部依赖项导致的错误。本节详细介绍了任何已知的问题,以及故障排除和临时解决方案。

Nashorn JavaScript 引擎

如果您的 Data Grid Server 使用 JavaScript 来自动执行任务,您必须安装 Nashorn JavaScript 引擎,以确保这些脚本可以在 Data Grid 8.4 上运行。这是因为 OpenJDK 17 删除了对 Nashorn JavaScript 引擎、其 API 和 jjs 工具的支持。

对于裸机数据网格服务器,您可以通过在 Data Grid CLI 中发出以下命令,从 Maven 中央存储库安装 Nashorn:

bin/cli.sh install org.openjdk.nashorn:nashorn-core:15.4 \
                                 org.ow2.asm:asm:7.3.1 \
                                 org.ow2.asm:asm-util:7.3.1
Copy to Clipboard Toggle word wrap

在 OpenShift 中,您可以创建一个 Infinispan 自定义资源(CR),将 Data Grid Operator 设置为为您的 Data Grid 集群安装 Nashorn。例如:

apiVersion: infinispan.org/v1
kind: Infinispan
metadata:
  name: infinispan
spec:
  replicas: 2
  dependencies:
    artifacts:
      - maven: org.openjdk.nashorn:nashorn-core:15.4
      - maven: org.ow2.asm:asm:7.3.1
      - maven: org.ow2.asm:asm-util:7.3.1
  service:
    type: DataGrid
Copy to Clipboard Toggle word wrap
TLS on Red Hat Enterprise Linux 7

RHEL 7 提供了 OpenSSL 库的版本,它尚不提供对 TLSv1.3 的支持。但是 Data Grid Server 8.4 默认启用 TLSv1.3 和 TLSv1.2,这会导致加密 Hot Rod 和 REST 端点的客户端连接出错。

Data Grid Server 还记录信息,如下所示:

WARN  [org.infinispan.HOTROD] ISPN004098: Closing connection due to transport error
org.infinispan.client.hotrod.exceptions.TransportException:: ISPN004077:
Closing channel due to error in unknown operation.
Copy to Clipboard Toggle word wrap

如果在 RHEL 7 上安装 Data Grid Server,您应该使用以下 JVM 选项禁用 OpenSSL 来使用原生 Java SSL 库:

-Dorg.infinispan.openssl=false
Copy to Clipboard Toggle word wrap

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat